类对象和类指针的区别

来源:互联网 发布:mac双系统删除windows 编辑:程序博客网 时间:2024/05/29 10:32

对于类CTest

声明:

类对象CTest C1:利用类的构造函数在内存中分配一块内存,调用了构造函数

类指针CTest  *pC1:是一个内存地址值,指向内存中存放的类对象,没有调用构造函数


引用成员:

对象用"."

指针用"->"


对象生命期:

若是成员变量,则是类的析构函数来释放空间

若是函数中的临时变量,则作用域是该函数体内


指针生命期:

则需利用delete在相应的地方释放分配的内存块,用new一定要delete


内存占用:

对象用的是内存栈,是个局部的临时变量
指针用的是内存堆,是个永久变量,除非你释放它


函数调用:

对象参数,参数传递占用的资源就太大了

指针参数,传过去的就是4个字节


当类是有虚函数的基类,关于虚函数的调用:
类的对象调用的是它自己的虚函数
类的指针调用的是分配给它空间时那个类的虚函数,要发挥虚函数强大就必须使用指针


对于类的对象和类的指针(用new运算符分配内存)在应用时区别 :

1:指针可以实现多态,父类的指针可以指向子类的对象,直接使用对象不行

2:当你希望明确使用这个类的时候,最好使用对象,如果你希望使用C++中的动态绑定,则最好使用指针或者引用

3:在类的声明尚未完成的情况下,可以声明指向该类的指针,但是不可声明该类的对象

5:定义对象实例时就已经分配了内存,指针如果没有new则未分配类对象所需内存

0 0
原创粉丝点击