C++中如果声明一个对象指针时没有分配内存,那么不会调用构造函数
一个指针在内存中也是有内存空间的。
在现在大多数机器上指针都是32位的,也就是4个字节。
如果你声明指针。例如,假设A是一个类
A *pa;
这内存中会分配4个字节的空间存储一个地址。只不过地址是不可以用的,因为它没有有效的指向某一个有用的内存空间。这和你声明一个int类型是一样的。
int p;
内存中也会分配4个字节空间给p来存储一个整形值,只不过这个整形值不是可用的,或者是垃圾的。
但是对应你说的调用构造函数。其实指的是
A *pa=new A;
这个时候,就会调用A的默认构造函数。它会在内存中分配内存,别且把这个有效的内存地址存储到指针变量pa的4个字节空间中。
本文深入探讨了C++中对象指针声明与构造函数调用之间的关系,解释了指针未分配内存时的行为,并通过实例说明了构造函数在指针分配内存时的触发过程。

761

被折叠的 条评论
为什么被折叠?



