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