C++中空类编译器不会产生以下哪个成员函数
-
当类为空时,编译器会为这个类合成构造函数、析构函数、拷贝构造函数、赋值重载函数
123456789101112131415161718class
Demo
{
};
void
func()
{
Demo d1,d2,d5;
//默认构造函数
Demo d3(d1);
//默认拷贝构造函数
Demo d4 = d2;
//默认拷贝构造函数
d5 = d4;
//默认赋值重载
//局部对象自动销毁,调用默认析构函数
}
int
main()
{
func();
return
0
;
}
-
没有私有构造函数,编译器合成的默认函数都是public的,不是private,如果类中构造函数是私有的,就不能在类的外部创建对象(在内部还是可以创建,要在外部使用对象,就要用到静态函数)
123456789101112131415161718192021222324252627class
Demo
{
public
:
static
Demo * getObject()
//为了返回对象持久存在,返回堆上对象指针
{
Demo d;
//类的内部还是可以创建对象
return
new
Demo();
}
int
geta()
{
return
a;
}
void
destroy()
{
delete
this
;
}
private
:
Demo() :a(
0
){}
int
a;
};
int
main()
{
Demo *p = Demo::getObject();
p->geta();
p->destroy();
return
0
;
}
所以,这题应该选C
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具