C++中空类编译器不会产生以下哪个成员函数

-
当类为空时,编译器会为这个类合成构造函数、析构函数、拷贝构造函数、赋值重载函数
123456789101112131415161718classDemo{};voidfunc(){Demo d1,d2,d5;//默认构造函数Demo d3(d1);//默认拷贝构造函数Demo d4 = d2;//默认拷贝构造函数d5 = d4;//默认赋值重载//局部对象自动销毁,调用默认析构函数}intmain(){func();return0;} -
没有私有构造函数,编译器合成的默认函数都是public的,不是private,如果类中构造函数是私有的,就不能在类的外部创建对象(在内部还是可以创建,要在外部使用对象,就要用到静态函数)
123456789101112131415161718192021222324252627classDemo{public:staticDemo * getObject()//为了返回对象持久存在,返回堆上对象指针{Demo d;//类的内部还是可以创建对象returnnewDemo();}intgeta(){returna;}voiddestroy(){deletethis;}private:Demo() :a(0){}inta;};intmain(){Demo *p = Demo::getObject();p->geta();p->destroy();return0;}所以,这题应该选C

浙公网安备 33010602011771号