我看到大部分说法是new不加修饰比如 int *p = new int;这个指针的指向的内容是不会被初始化且随机的,c++primer上也提到了,不过我在linux上测试的申请一直都是0;这个尚且可以用系统或编译器优化或那块内存本来就是0来解释,不过我来测试const的时候,因为const的对象必须初始化
如图如果使用const Const a,会报一个a未被初始化的错误,我查了一下,默认合成的构造函数是不会对类内数据初始化的,所以const对象a未被初始化,但是下面那句const Const *a = new Const,不也是应该调用默认的构造函数吗,但是却没有报错
...全文
29710打赏收藏
关于new和const
我看到大部分说法是new不加修饰比如 int *p = new int;这个指针的指向的内容是不会被初始化且随机的,c++primer上也提到了,不过我在linux上测试的申请一直都是0;这个尚且可以用系统或编译器优化或那块内存本来就是0来解释,不过我来测试const的时候,因为const的对象必须初始化 如图如果使用const Const a,会报一个a未被初始化的错误,我查了一下,默认合成的构造函数是不会对类内数据初始化的,所以const对象a未被初始化,但是下面那句const Const