c++ 基础知识整理(二)



一、三种函数(带有指针都要重写这三个函数)

拷贝构造:initialization list 建议使用初始化列表,对于初始化class sizeof(class) 特别大的,优化特别明显;而一般的类型,我个人认为,没什么区别。并且现在,编译器也会去替你优化的,所以个人认为不要特别纠结这个初始化列表。

拷贝赋值:
1、检测自我赋值;
2、delete 指针,new 指针copy内容; 或者检测之前那个指针分配的长度 > 要copy的长度
,清空内容copy内容,否则delete 指针,new 指针copy内容;

析构:清理战场,将所有的资源进行释放;

建议:1)、分配的时候可以给一个 因子(对于string,可以设置2 ,m_date = new char[len * 2]),这样后面就
不需要做去delete,new操作;
2)、对于系统重复使用一个内容的时候,可以采用 引用计数的;这样也同样可以减少对内存的操作;
3)、new,delete 最好用成对宏定义一个,来保证正确性。#define NEW_PTR(T) new T; #deine DELETE_PTR(ptr) delete ptr
#define NEW_ARRAY(T,LEN) new T[LEN]; #deine DELETE_ARRAY(ptr) delete []ptr 


二、new,delete 对象的过程

new ==》  void* pc = new char[sizeof(T)];

 类型转换
 pc->ctor();

delete ==》pc->dtor();
  delete pc;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值