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

无锡网站建设哪家专业网页网站免费

无锡网站建设哪家专业,网页网站免费,北湖区网站建设,代运营服务方案1、默认构造函数生成规则 编译器不一定会为类生成默认构造函数,但在下列情况下,编译器会生成默认构造函数。 (1)该类没有任何构造函数,但包含一个类类型的成员变量,且成员变量所属的类有默认构造函数。 …

1、默认构造函数生成规则

编译器不一定会为类生成默认构造函数,但在下列情况下,编译器会生成默认构造函数。

(1)该类没有任何构造函数,但包含一个类类型的成员变量,且成员变量所属的类有默认构造函数。

(2)该类没有任何构造函数,但其父类有默认构造函数。

(3)该类没有任何构造函数,但含有虚函数

因为虚函数会产生虚函数表指针,而这个虚函数表指针需要在构造函数中生成。

MyDemo::MyDemo{this->_vptr = 0x00BC;
}

(4)类带有虚基类

因为需要在构造函数中生成虚基类表指针。

MyDemo::MyDemo{this->_vbptr = 0x00BC;
}

(5)对成员变量进行了大挂号或等号初始化。

class MyDemo{private:int x = 1;int y(2)
}

编译器合成的默认构造函数如下(伪代码):

MyDemo::MyDemo{this->x = 1;this->y = 2;
}

2、验证默认构造函数生成规则

上面生成默认构造函数的5条规则,我们可以通过VS2019来验证。

(1)没有生成默认构造函数

class MyDemo {};int main()
{MyDemo demo;return 0;
}

我们把断点设在第8行:return 0 的位置。运行后打开“反汇编”窗口,可以看到如下代码:

(2)生成默认构造函数

给MyDemo类增加代码,使其满足第5条规则。

class MyDemo {
private:int x = 1;
};

可以看到反汇编代码中有调用构造函数的代码:call MyDemo::MyDemo,也就是说这个时候MyDemo类生成了默认构造函数。

关于其他4条生成默认构造函数的规则,读者可以用同样的方法去验证。

3、继承中的对象构造

首先我们要知道继承中的对象构造规则:由内而外,即先构造父类对象,再构造子类对象。

我们可以用下面的代码验证继承中的对象构造顺序:

class Base {
public:Base() { cout << "Base::Base()" << endl; }
};class Derive : public Base {
public:Derive() { cout << "Derive::Derive()" << endl; }
};int main()
{Derive derive;return 0;
}

执行后的结果可以看到:

Base::Base()

Derive::Derive()

http://www.yayakq.cn/news/577562/

相关文章:

  • 北京微信网站开发报价html5建设网站
  • 网站 建设 原则广州手表网站
  • 苏州哪家网站公司做的好的沈阳关键词seo
  • 微网站首页网站建设 业务员
  • 网站的域名起什么好处网络营销能干什么工作
  • 个人博客网站取名做服务的网站
  • 团购网站做二级域名wordpress wdlog主题
  • wordpress显示轮播图关键词首页排名优化平台
  • 建设网站时间推进表网站图标怎么设置
  • 国外做鞋子的网站有哪些二维码制作平台
  • html 网站根目录网站支付宝接口付费
  • 深圳坂田网站设计公司有哪些wordpress添加地图吗
  • 模板网站制作怎么样优速网站建设
  • 做饲料的专业网站做潮鞋的网站和平台
  • 山东自助seo建站网站后台程序设计常用语言 技术的分析比较
  • 东台建设局网站青少年编程培训机构排名前十
  • 长春电商网站建设报价义乌小程序开发哪家好
  • 自己做网站需要主机吗从零开始wordpress主题
  • 适合中层管理的培训自学seo大概需要多久
  • 西安网站建设怎么接单大学校园网络规划设计方案
  • 济南建设网站企业报价做黑龙头像的网站
  • 二手市场网站开发教育培训网站开发
  • 百度收录的网站标题 --wordpress 主题无法更换
  • 网站正在建设源代码白度指数
  • 建设网站的语言上海网络seo公司
  • 淘宝上的网站建设为什么便宜老网站改版做别的
  • 大连网站建设多少钱企业网站建设费用深圳
  • 企业网站东莞网站建设制作网站会员体系
  • 国外有什么网站做游戏吗写方案的网站
  • 做视频网站都需要什么软件遵义网站制作教程