c++ 类的对象与指针
2015-09-18 10:03
405 查看
这里首先我们需区分一下指针数组和数组指针。
指针数组:int *p[4];它最终是个数组,只是这个数组存储的是4个指向int类型的指针。
数组指针:int (*P)[4];它最终是个指针,表示一个指向一个int类型数组的指针。
下面来看一下具体代码:
代码输出结果:
![](http://images2015.cnblogs.com/blog/586692/201509/586692-20150918100241508-1946373023.png)
为什么?
为什么他们没有调用类的构造函数呢????
因为,T (*p)[3];是一个指针,没有实例化的指针是不会调用构造函数的。,怎么实例化,很简单啊,你可以T *pp=new T;,酱紫它就会调用构造函数了。
同样,T *q[3];虽然是一个数组,但是数组里的元素全是指针,他们也没有经过实例化,那么也就不会调用构造函数了。
指针数组: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; }
代码输出结果:
![](http://images2015.cnblogs.com/blog/586692/201509/586692-20150918100241508-1946373023.png)
为什么?
为什么他们没有调用类的构造函数呢????
因为,T (*p)[3];是一个指针,没有实例化的指针是不会调用构造函数的。,怎么实例化,很简单啊,你可以T *pp=new T;,酱紫它就会调用构造函数了。
同样,T *q[3];虽然是一个数组,但是数组里的元素全是指针,他们也没有经过实例化,那么也就不会调用构造函数了。
相关文章推荐
- C++ 继承中的一个小知识点
- iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements
- C语言运算符优先级列表
- C语言中数组的几种输入
- C语言读入多组数并打印数值和
- C/C++专项练习 (一)
- 我的第一份工作的得与失
- C++ json库jsoncpp 吐槽
- C语言中extern的用法
- 【第3周 项目4 - 顺序表应用】
- c语言结构体中的冒号的用法
- 第3周项目1 顺序表的基本运算
- 【第3周 项目3 - 求集合并集】
- c++反汇编学习笔记----------2.整型运算的编译器优化
- makefile---单个源文件,单个可执行文件(C/C++)
- c++反汇编学习笔记----------1.基本数据类型
- C++Primer第五版 10.4.1节练习
- C++Primer第五版 10.3.4节练习
- C++Primer第五版 10.3.3节练习
- C++Primer第五版 10.3.2节练习