c++ 类的对象与指针

时间:2023-03-09 15:47:00
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;
}

代码输出结果:

c++ 类的对象与指针

为什么?

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

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

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