码迷,mamicode.com
首页 > 编程语言 > 详细

C++编译器合成默认构造函数的条件(合成默认拷贝构造函数雷同)

时间:2014-08-03 12:48:15      阅读:248      评论:0      收藏:0      [点我收藏+]

标签:c++   默认构造函数   编译器   

当用户没有为类定义构造函数的时候,编译器并不是为每个类合都成默认的构造函数,只是在编译器需要的时候才合成默认构造函数。编译器合成默认的构造函数只是满足编译器的编译的需要,而不是满足程序员的需要(例如,成员变量的初始化工作还需要程序员来定义构造函数)

1、对象中包含带有默认构造函数的对象

class A{
public:
	A();
}
class B{
public:
	A a;
}
在组合中B需要编译器合成默认的构造函数,来调用A的默认构造函数,来定义(并不帮助程序员初始化)B自己的成员变量,内置类型变量则不需要。

2、父类中带有默认构造函数

class A{
public:
	A();
}
class B:public A
{
...
}
在继承关系中,同合成,编译器需要为B合成默认的构造函数类调用A的默认构造函数。

3、带有虚函数的类

带有虚函数的类,编译器根据需要,合成一个存放虚函数指针的虚表。

4、虚继承的类


C++编译器合成默认构造函数的条件(合成默认拷贝构造函数雷同),布布扣,bubuko.com

C++编译器合成默认构造函数的条件(合成默认拷贝构造函数雷同)

标签:c++   默认构造函数   编译器   

原文地址:http://blog.csdn.net/h_wlyfw/article/details/38356527

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!