C++ new加、不加括号问题
问一个C++ new加括号和不加括号的问题
现在有一个自定义的类,如下代码:
class A{ public: int a; }; int main(){ A *a1 = new A; A *a2 = new A(); cout << a1->a<<endl; cout <<a2->a<<endl; return 0; }
网上都说第一个输出是随机数,第二个是调用了合成默认构造,所以输出0。但是,实际我机器跑出来,两个都是0。怎么解释?
网上说对于内置类型如int,加括号说明分配内存并初始化为0,不加则只是单独分配内存。这个我验证过了,没有问题。
求指点。。
#笔试题目##C/C++#