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

费县住房和城乡建设局网站深圳网站建设外包公司

费县住房和城乡建设局网站,深圳网站建设外包公司,异构国际设计公司网站,企业网站备案要多少钱当需要在子类中初始化父类的变量时(也就是在子类中调用父类的构造函数),我们不需要一个一个地委托父类的构造函数,而是直接使用继承构造函数即可: using Base::Base //base时父类的名字使用继承构造函数,就…

当需要在子类中初始化父类的变量时(也就是在子类中调用父类的构造函数),我们不需要一个一个地委托父类的构造函数,而是直接使用继承构造函数即可:

using Base::Base //base时父类的名字

使用继承构造函数,就表示在子类中调用父类的构造函数(公有的),按照父类构造函数的方式初始化父类的变量

  • 不使用继承构造函数:
  class TestA {public:TestA(string i): a1(i) {}TestA(int i) : a2(i) {}TestA(double i) : a3(i) {}~TestA() {}string geta1() {return a1;}virtual string getb1() = 0;private:string a1;int a2;double a3;};class TestB: public TestA{public://一个一个写TestB(string i):TestA(i),b1(i) {}TestB(int i) :TestA(i), b2(i) {}TestB(double i) :TestA(i), b3(i) {}~TestB() {}virtual string getb1() override {return b1;}virtual void testb();private:string b1;int b2;double b3;};
  • 使用继承构造函数:
  class TestA {public:TestA(string i): a1(i) {}TestA(int i) : a2(i) {}TestA(double i) : a3(i) {}~TestA() {}string geta1() {return a1;}virtual string getb1() = 0;private:string a1;int a2;double a3;};class TestB: public TestA{public:// 继承构造函数using TestA::TestA; //直接调用TestA中的构造函数// ....virtual void testb();private:string b1;int b2;double b3;};
  • 其实继承构造函数本质上就是 在子类中初始化父类的变量,所以它并不能初始化子类自己的变量。那使用继承构造函数之后,子类如何初始化自己的变量呢?

    1. 直接就地初始化(针对非静态成员变量),即 = 或 { }
 class Derived: public Base {public:// 使用继承构造函数using Base::Base;// 假设派生类只是添加了一个普通的函数void display() {// do something		}private:// 派生类新增数据成员double _double{0.0}; //直接用{}};
  1. 用子类的构造函数初始化,在初始化列表中初始化(没有第一种简洁)
 class Derived :public Base {public:// 使用继承构造函数using Base::Base;// 新增派生类构造函数Derived(int a, double b):Base(a), _double(b){}//在初始化列表中初始化// 假设派生类只是添加了一个普通的函数void display() {// do something		}private:// 派生类新增数据成员double _double{0.0};//本地初始化 会被初始化列表 覆盖};
  • 注意,当基类的构造函数由默认值时,子类的构造函数不会继承这个默认值,同时会产生多个版本的几倍构造函数:
  class A {public:A(int a = 3, double b = 4): _a(a), _b(b){}void display() {cout<<_a<<" "<<_b<<endl;}private:int _a;double _b;};class B:public A {public:using A::A;};/*A中的构造函数有下面这几个版本:A()A(int)A(int, double)A(const A&)B中的继承构造函数有下面这几个版本B()B(int)B(int, double)B(const B&)	 */
http://www.dtcms.com/wzjs/806126.html

相关文章:

  • 宇舶手表网站电子商务网站建设及其相关法律问题
  • 上海做网站建设公司排名手机网站建站工作室
  • 重庆建设工程造价管理协会网站wordpress 知名网站
  • 广东省城乡住房建设厅网站首页试用型网站怎么做
  • wordpress网站源码分享织梦dedecms电影网站模板
  • 自己做网站传视屏做扎染的网站
  • 厦门市建设厅网站wordpress+高性能
  • 网站建设 网站内容 采集中国企业500强排名一览表
  • 网站开发语言php5.1wordpress 下载弹出插件
  • 达州网站建设哪家好德州品牌策划公司
  • 建外文网站淘宝客推广
  • 网站流量消耗计算php网站开发实践
  • 交互设计产品有哪些东莞做网站优化天助网络
  • 网站开发老是弹广告app定制开发制作
  • 平潭建设局网站手机下载视频网站模板下载失败
  • 网站建设设计稿哪里有网站模板下载
  • 成立一个网站平台要多少钱“哈尔滨企业服务平台”公众号
  • 新乡网站建设联系方式做网站用什么字体
  • 建网站 外贸网页制作英文
  • 互联网金融p2p网站建设手机网站开发视频
  • 王建设医生个人网站西安网易网站建设
  • 北京做网站比较大的公司现在建设公司网站用什么软件
  • 视频上传网站如何做制作软件网站
  • 做企业营销网站phpwind 做的网站
  • 银川建设厅网站重庆市建设工程管理协会网站
  • wordpress主题主页面保定网站优化招聘
  • 招标网站开发文档淘货铺
  • html5手机网站案例wordpress屏蔽国外访问
  • 龙华做网站怎么样网站建设与运营答案
  • .net网站开发文档wordpress 自定义查询