当前位置: 首页 > news >正文

网站建设明细价单手机网站解析域名

网站建设明细价单,手机网站解析域名,wordpress悬赏插件,哈尔滨建设局网站博主介绍#xff1a;程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章#xff0c;首发gzh#xff0c;见文末#x1f447;#x1f… 博主介绍程序喵大人 35- 资深C/C/Rust/Android/iOS客户端开发10年大厂工作经验嵌入式/人工智能/自动驾驶/音视频/游戏开发入门级选手《C20高级编程》《C23高级编程》等多本书籍著译者更多原创精品文章首发gzh见文末记得订阅专栏以防走丢 C基础系列专栏 C语言基础系列 本文主要介绍下多态的概念。 继承与抽象类 多态是面向对象的核心知识点在C中意味着调用对象成员函数时会根据对象的真实类型来执行不同的函数从而产生不同的行为。 比如同样是人不同人的声音不相同。比如同样是公司不同公司的经营业务也不同。 这就可以就多态来解释。 那怎么实现多态看这段代码先定义一个People类 class People { public: virtual void Speak() { std::cout People Speak \n; } };注意这里面的函数使用了virtual修饰用virtual修饰的函数表示虚函数带虚函数的类可以称之为父类有父类自然可以派生出子类子类可以覆盖父类的行为。 这里再定义两个类一个男人类一个女人类 class MalePeople : public People { public: void Speak() { std::cout MalePeople Speak \n; } };class FemalePeople : public People { public: void Speak() { std::cout FemalePeople Speak \n; } };在MalePeople和FemalePeople使用了冒号表示继承冒号后面的public表示继承的权限。 所以上面的代码的含义是 MalePeople以public权限继承了People并覆盖父类People的Speak行为。 FemalePeople以public权限继承了People并覆盖父类People的Speak行为。 再看一段使用多态的代码 int main() {People *p1 new People();People *p2 static_castPeople *(new MalePeople());People *p3 static_castPeople *(new FemalePeople());p1-Speak(); // People Speakp2-Speak(); // MalePeople Speakp3-Speak(); // FemalePeople Speakdelete p3;delete p2;delete p1; }p1、p2、p3都是People的实例但是通过他们的实例调用相同的函数却产生了不同的行为这就是多态。 注意两点想要实现上述的多态行为 父类相应的函数一定要使用virtual修饰一定要父类的指针或引用指向子类对象 继承权限 共有三种继承权限 public继承 父类中所有public成员在子类中为public属性父类中所有protected成员在子类中为protected属性父类中所有private成员在子类中不可访问 protected继承 父类中所有public成员在子类中为protected属性父类中所有protected成员在子类中为protected属性父类中所有private成员在子类中不可访问 private继承 父类中所有public成员在子类中为private属性父类中所有protected成员在子类中为private属性父类中所有private成员在子类中不可访问 大体可以理解为 父类成员在子类中的访问权限不会高于指定的继承权限。父类中的private成员在子类中使用不可访问。 然而平时开发过程中一般都会使用public继承其他的继承方式很少。 纯虚函数 在C中还有个纯虚函数的概念就是在virtual修饰的基础上加个0比如 class People { public: virtual void Speak() 0; };这里的Speak就是纯虚函数含有纯虚函数的类叫抽象类同时规定抽象类不允许被实例化只能通过子类实例化举例 int main() {People *p1 new People(); // compile errorPeople *p2 static_castPeople *(new MalePeople());People *p3 static_castPeople *(new FemalePeople()); }多继承 就是子类继承了多个父类比如一个男子篮球运动员那就可以定义两个父类一个MalePeople类一个BasketballPlayer类那如果想要定义男子篮球运动员类可以定义一个MaleBasketballPlayer类继承MalePeople和BaskeballPlayer代码如下 class MalePeople { public: void Speak() { std::cout MalePeople Speak \n; } };class BasketBallPlayer { public: void Play() { std::cout Play Basketball \n; } };class MaleBasketBallPlayer : public MalePeople, public BasketBallPlayer {};和单继承方式差不多只是用相同的语法在后面再派生多个即可。 虚继承 普通的继承就是非虚继承如图 非虚继承时显然D会继承两次A内部就会存储两份A的数据浪费空间而且还有二义性D调用A的方法时由于有两个A究竟时调用哪个A的方法呢编译器也不知道就会报错所以有了虚继承解决了空间浪费以及二义性问题。 在虚拟继承下只有一个共享的基类子对象被继承而无论该基类在派生层次中出现多少次。共享的基类子对象被称为虚基类。在虚继承下基类子对象的复制及由此而引起的二义性都被消除了。 如何使用虚继承 在继承的时候使用virtual关键字代码如下 struct Base { virtual void Func() { printf(Base Func\n); } };struct BaseA : virtual public Base { virtual void Func() { printf(BaseA Func\n); } };struct BaseB : virtual public Base { virtual void Func() { printf(BaseB Func\n); } };struct Derive : public BaseB, public BaseA { void Func() override { printf(Derive Func \n); } };注意为了易于观察上面所有的父类都没有定义析构函数正常父类的析构函数一定要设置成virtual。 练习 多态只有这一种方式吗为什么一定要通过指针或引用方式才能达到多态的目的为什么析构函数一定要设置成virtual构造函数可以为虚函数吗多态的原理是怎么样的不同继承方式下类对象的布局是什么结构 码字不易欢迎大家点赞关注评论谢谢 C训练营 专为校招、社招3年工作经验的同学打造的1V1 C训练营量身定制学习计划、每日代码review简历优化面试辅导已帮助多名学员获得offer训练营介绍
http://www.w-s-a.com/news/979682/

相关文章:

  • 小游戏网站建设可以自己做图片的软件
  • 湖南地税局官网站水利建设基金app仿制
  • 苏州网站设计kgwl建设网站需要用到哪些技术人员
  • 万户网络做网站如何亚马逊网站建设
  • 门户网站制作费用暴雪公司最新消息
  • 深圳专业建网站公司济南公司做网站的价格
  • 怎么运行自己做的网站网上申请平台怎么申请
  • 旅游公司网站 优帮云新闻近期大事件
  • 电商网站后台报价营销软文小短文
  • 网站建设项目售后服务承诺公司名称邮箱大全
  • 湖南网站建设哪里好做ppt的网站叫什么名字
  • 容城县建设银行网站电子商务网站建设子项目
  • 网站管理助手3.0做淘宝网站用什么软件做
  • 贵阳做网站的公司wordpress趣味插件
  • 自己设置免费网站设计平台南京哪里有做公司网站的
  • 建设公司内网网站的意义自助建站网站的宣传手册
  • 手机建设中网站建立个人网站服务器
  • 网站开发工程师岗位概要网站怎么制作教程
  • 城乡建设主管部门官方网站公司简介模板ppt范文
  • 网站认证必须做么cc0图片素材网站
  • net域名 著名网站国外设计案例网站
  • 淘宝客网站哪里可以做app地推网
  • 宜昌建设厅网站中国最新时事新闻
  • 微网站怎么开发wordpress 发表评论
  • 山东网站建设是什么一页网站首页图如何做
  • 游戏开发与网站开发哪个难万网影
  • 做网站编程语言建筑施工特种证书查询
  • 找人做网站内容自己编辑吗修改wordpress登陆界面
  • 登陆建设银行wap网站湖南网站建设磐石网络答疑
  • 58网站怎么做浏览度才高论坛网站怎么做排名