《C++个人学习笔记》从堆栈中实例化对象以及访问对象成员

栈相当于装衣服的箱子,先放入的在最底下,后放入的在最上方,所以当取出数据时,采用的是先进后出的顺序,每次取出数据需要从最后一个放入的数据开始。

堆相当于一个书架,也是采用一定的顺序存放数据,但是取出时可以任意从书架中取出,堆的存取是随意。

首先自定义一个类名TV

class TV

{public: char name[20];  int type;  void changeVol(); void power();}  定义了一个电视类,有开关和调节声音的功能

当从栈中实例化对象时:int main(void){TV tv; TV tv[20]; return 0;} 

当从栈实例一个对象时,写法为 类名加对象名。在这里不用使用delete关键词来手动释放内存,栈中的内存会自动释放。

当从堆中实例化对象时:int main(void){TV *tn=new TV();  TV *tt=new TV[20];  delete tn  delete[]tt; return 0;}

当从堆实例一个对象时,写法为类名加指针符号*加对象名,然后new一个TV类的内存空间给tn。 TV *tt=new TV[20];这段代码的含义是:“在栈内存中存放了一个指向一块堆内存中的指针tt。就是说程序在堆中分配了一块内存,然后将内存的首地址,存在栈中。      而这里需要手动释放内存,delete []tt; 是告诉编译器,释放tt数组的内存空间。

实例化对象后

在栈中访问对象成员 举例   tv.type = 0;  使用 . 来访问创建的对象。

在堆中访问对象成员 举例  堆访问对象成员 tn->type = 0;  使用 -> 来访问创建的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值