C++基础篇(2)









a 从栈中实例化 TV tv; TV tv[20]; b 从堆中实例化 TV *p = new TV(); TV *q = new TV[]; delete p; delete []q; c对象成员的访问 tv.type = 0; tv.changeVol(); || p->type = 0; p->changeVol();从栈实例化对象:自动分配释放内存。 从堆实例化对象:手动分配释放内存.

 析构函数用于删除数据,不允许传入参数,也不允许重载

初始化列表中初始化只能用括号,不能用等号

初始化列表和构造函数,构造函数不能完全代替初始化列表的作用,比如 const pi

错误的

this就是所在对象的地址

this指针一般都是系统默认调用,以防止在实例化对象调用成员函数的时候出现错误,保证一一对应,当数据成员和构造函数中的形参名字相同是,计算机会分不清楚谁给谁赋值,这是需要人工加上this指针,用来区别。 系统自动为每一个成员函数的参数列表加了一个this指针,它是指向本类对象的指针,它的值是当前被调用的成员函数所在对象的起始地址

如果对象成员为指针,则在sizeof(line)计算对象内存时,只计算对象成员指针的占用的空间大小,其指出去的那块内存(这里是m_iX等)不被算入。

深拷贝(如果存在指针,则在拷贝构造函数中new一块内存,存要被拷贝的对象的值)

浅拷贝(只是简单的值传递) 注意:在浅拷贝中,arr1的m_pArr指针 和 arr2的m_pArr指针会指向同一块内存地址。这样在对象析构函数会对同一块内存地址释放两次,结果就是计算机奔溃了,发生运行时错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值