A选项:一个类必须拥有构造函数,否则没发创建一个对象,达不了类的目的。
一开始本人对构造函数为私有的情况有所顾忌,但构造函数私有只是不想在外部直接定义对象出来,并不是说不可以定义对象。考虑实现一个单例类的例子:
class A{
public:
void show( ){
cout<<val<<endl;
}
static A* GetInstance( )
{
static A instance;
return &instance;
}
private:
A() { }
static int val;
};
int A::val = 0;
B选项:默认的构造函数除了构造还有 拷贝构造 右值构造(c++11),它们两个是带有参数的
D选项:编译器生成的默认构造函数只负责初始化有默认构造函数的成员对象,其他的一律不负责(int 等内置类型数据成员的初始化,这个该由程序员去做。