【C++】什么情况下编辑器自动生成默认的构造函数?(详解)

当C++类在特定场景下需要默认构造函数时,编译器才会自动生成。这些场景包括:类对象含有默认构造函数的数据成员,基类带有默认构造函数的派生类,带有虚函数的类,以及虚拟继承。如果不满足这些条件且未显示定义构造函数,编译器不会生成默认构造函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  首先我们需要明确,在没有显示定义构造函数的时候,编辑器不一定会自动生成默认的构造函数

  对c++初学者来说存在一个误区,如果类没有定义任何构造函数,编译器会自动生成默认的构造函数。

正确的说法:

只有默认构造函数”被需要“的时候编译器才会生成默认构造函数。

那么什么时候是编辑器自己想生成的呢?这里我们给出了四个场景 :

场景一:含有类对象数据成员,该类对象类型有默认构造函数

class A
{
   
public:
	A()
	{
   
		cout << "A()" << endl;
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值