(未完成,待续。。)

第一章:C++基本功

1. 养成良好的编码习惯。

2. 堆上的资源随用随还,严格控制生命周期。

第二章:一些调试心得

1. 在VisualStudio环境下,曾出现 Detected memory leaks!,调试很久,有如下心得:

a. 可以逐步简化程序,确认问题点,同时使用 _CrtSetBreakAlloc(x) 辅助查找问题。

b. 使用 Borland 公司开发的 DevPartner,比较强大。

2. 一处 class 继承 后的问题。

在 C#中,几乎不用担心内存问题,而C++中则有些区别。

 1 class A
 2 {
 3 protected:
 4     int * p1;
 5 };
 6
 7 class A1 : class A
 8 {
 9     A1()
10     {
11         p1 = new int[10];
12     }
13     ~A1()
14     {
15         delete [] p1;
16     }
17 };

以上代码,可能会报 内存泄露的错误。比如按以下方式调用:

1 A * a = new A1();
2 delete a;

实际析构方式是: ~A(), 就截至了,并没有调用 ~A1()。 这导致内存泄露。

所以:int * p1 是基类的成员,就应该有基类来释放。子类想使用可以,但是仅限于使用,不能拥有(即:构造、析构都不应该由它来管理)。

修改后的代码如下:

class A
{
protected:int *     m_p1;public:A(int p1_count){m_p1 = new int[p1_count];}~A(){delete [] p1;}
};class A1 : class A
{A1() : A(10){}~A1(){}
};

转载于:https://www.cnblogs.com/robnetcn/p/5962925.html

如何让 C++ 和 C# 一样易用,而且效率更高?相关推荐

  1. 中易广告联盟v9/黑色高端/模板 团队介绍网站

    介绍: 中易v9传媒黑色模板:一站式广告平台模板. 丰富的广告模式提升用户的收益转化.最佳的流量变现方案(通栏.插屏.跳转).丰富的网络广告. 投放经验帮助品牌瞬间传递! 注:只是中易v9模板,不含系 ...

  2. 中信:易悦组合,更愉悦

    https://mp.weixin.qq.com/s/1PAGRxHTXtLcXhWXnTRWWQ 是时候说说中信的易卡和悦卡了. 虽然还款存在着一些坑需要留心,但是要论收割积分,中信的易悦二卡是绝不 ...

  3. 杭州支付宝出行vs北京地铁“易通行”,你更喜欢哪个?

    最近,各大互联网公司.多个城市都在布局"互联网"+"公共交通".以杭州和北京为例,杭州支持支付宝扫二维码乘坐公交和地铁:北京地铁则走自主研发道路,推出了&quo ...

  4. C++ folly库解读(三)Synchronized —— 比std::lock_guard/std::unique_lock更易用、功能更强大的同步机制

    目录 返利 www.cpa5.cn 传统同步方案的缺点 folly/Synchronized.h 简单使用 Synchronized的模板参数 withLock()/withRLock()/withW ...

  5. 3dmx软件工作灵活,易学易用,制作效率极高,渲染真实感极强

    3D游戏角色(游戏中的主角.NPC.怪物等都是由3D角色建模师制作的3D游戏场景建模在项目中需求量比较高,入门上手比较快速,因此非常适合新手,并且根据我的近几年工作能明显感觉到,手绘类建模项目逐渐在减 ...

  6. 【NLP】大模型训练之难,难于上青天?预训练易用、效率超群的「李白」模型库来了!...

    机器之心发布 机器之心编辑部 LiBai(李白)模型库覆盖了 Hugging Face.Megatron-LM.DeepSpeed.FairSeq 这些所有主流 Transformer 库的优点,让大 ...

  7. NumPy库的介绍与使用(一)

    目录 一.NumPy库简介 二.NumPy库入门 1.数据的维度 2.安装NumPy 3.导入NumPy库 三.NumPy的数组对象:ndarray 1 为什么要引入ndarry呢? 2. ndarr ...

  8. PHP文字转语音排号声音,PC端好用的文字转语音软件有哪些?三款简单易用的软件推荐给你!...

    在我们的日常生活中,语音和文字这两种沟通形式已经非常普遍的存在了,比如说开会时因为需要专注,所以用录音笔将开会的内容录制下来,会后再通过文字语音转换软件来进行内容的转换,最后整理成领导想要的文字形式的 ...

  9. 重庆“易法院”上线 民众足不出户参与诉讼全过程

    图为重庆移动智能法院--"易法院"APP宣传海报. 刘贤 摄 图为重庆移动智能法院--"易法院"APP宣传海报. 刘贤 摄 中新网重庆1月15日电 (记者 刘贤 ...

最新文章

  1. awk linux 获取端口号_Linux提权后获取敏感信息命令
  2. Python,OpenCV图像金字塔cv2.pyrUp(), cv2.pyrDown()
  3. 修改VS2017新建类模板文件添加注释
  4. android 文件mimetype_android获取文件getMimeType的两种方法
  5. 搜狐视频怎么清除应用缓存
  6. java如何脱离ide运行_如何脱离IDE使用自己的jar包?
  7. ASP用正则验证邮箱地址手机号码电话号码格式
  8. 剑指offer——面试题42-2:翻转单词顺序
  9. 1203.1——条件语句 之 if语句
  10. [bzoj3481]dzy loves math III 解题报告
  11. 夏书祥-淘宝考试最新答案
  12. 从零开发微信公众号(PC)
  13. jmeter调用Python脚本(java调用Python程序)阶段一(可实现版)
  14. 浏览器密码查看工具-WebBrowserPassView使用实验 ——合天网安实验室学习笔记
  15. 计算机教程打字方法,技巧:打字指法和关键位置教程_IT /计算机_信息
  16. 对马的幽灵是关于人的
  17. BT种子/磁力/eD2K,P2P和各种下载协议
  18. php期末作业作业,作业作业作业作业作业作业
  19. 所托非人勿怪人,忠人之事需灵变
  20. command patten 读书笔记

热门文章

  1. 前端学习(3347):数组方法的运用和总结稀疏数组
  2. 前端学习(3346):设计模式之工厂模式3
  3. 前端学习(3121):react-hello-react的state的简写方式
  4. [js] 在DOM上同时绑定两个点击事件(一个用捕获,一个用冒泡),事件总共会执行几次,先执行哪个事件?
  5. 前端学习(2686):重读vue电商网站7之登录预校验
  6. 前端学习(2569):如何跨组件调用实例
  7. “约见”面试官系列之常见面试题之第六十篇之事件绑定和普通事件(建议收藏)
  8. 前端学习(1049):todolist正在进行和已经完成阶段2
  9. 前端学习(664):逻辑中断逻辑或
  10. 前端学习(225):尺寸属性