如果'Test'是一个普通的类,那么之间有什么区别:
Test* test = new Test;
Run Code Online (Sandbox Code Playgroud)
和
Test* test = new Test();
Run Code Online (Sandbox Code Playgroud) 当我使用new []创建我的类数组时:
int count = 10;
A *arr = new A[count];
Run Code Online (Sandbox Code Playgroud)
我看到它调用了一个默认的构造函数A count.其结果是arr已经count初始化的类型的对象A.但是,如果我使用相同的东西来构造一个int数组:
int *arr2 = new int[count];
Run Code Online (Sandbox Code Playgroud)
它没有初始化.所有值都类似于-842150451int的默认构造函数将其值赋值给0.
为什么会有这么不同的行为?默认构造函数是否仅针对内置类型调用?