c++ 类的对象与指针

这里首先我们需区分一下指针数组和数组指针。

指针数组:int *p[4];它最终是个数组,只是这个数组存储的是4个指向int类型的指针。

数组指针:int (*P)[4];它最终是个指针,表示一个指向一个int类型数组的指针。

下面来看一下具体代码:

#include <iostream>
using namespace std;
class T
{
public:
    T(){cout<<"调用一次默认构造函数"<<endl;}
};

int main()
{
    T (*p)[3];
    T *q[3];
    //T a[2];
    //T *pp;
    return 0;
}

代码输出结果:

image

为什么?

为什么他们没有调用类的构造函数呢????

因为,T (*p)[3];是一个指针,没有实例化的指针是不会调用构造函数的。,怎么实例化,很简单啊,你可以T *pp=new T;,酱紫它就会调用构造函数了。

同样,T *q[3];虽然是一个数组,但是数组里的元素全是指针,他们也没有经过实例化,那么也就不会调用构造函数了。

原文地址:https://www.cnblogs.com/audi-car/p/4818392.html