自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

转载 C++内存管理

<br /><br />C++内存管理<br />[导语]<br />内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了C++超绝的性能。本期专题将从内存管理、内存

2011-05-15 23:43:00 368

转载 c程序中常见的与存储器有关的错误

<br />------------- c程序中常见的与存储器有关的错误-----------*整理:Zsm。*时间:2011-5-2。*出处:http://blog.csdn.net/Zsm0107。------------------------------------------------------------ 与存储器有关的错误属于那些最令人惊恐放入错误,(-:)),因为它们在时间和空间上,经常是错误源一段距离之后才表现出来的。一、两个概念内

2011-05-15 23:41:00 308

转载 C++ 对象的内存布局(下)

<br /><br />C++ 对象的内存布局(下)<br /> <br />陈皓<br />http://blog.csdn.net/haoel<br /> <br /> <br /><<<点击这里查看上篇<br /> 重复继承<br /> <br />下面我们再来看看,发生重复继承的情况。所谓重复继承,也就是某个基类被间接地重复继承了多次。<br /> <br />下图是一个继承图,我们重载了父类的f()函数。<br /> <br /><br /><br /> <br />其类继承的源代码如下所示。其中

2011-05-15 23:39:00 209

转载 C++ 对象的内存布局(上)

<br /><br />C++ 对象的内存布局(上)<br /> <br />陈皓<br />http://blog.csdn.net/haoel<br /> <br /> 点击这里查看下篇>>>前言<br /> <br />07年12月,我写了一篇《C++虚函数表解析》的文章,引起了大家的兴趣。有很多朋友对我的文章留了言,有鼓励我的,有批评我的,还有很多问问题的。我在这里一并对大家的留言表示感谢。这也是我为什么再写一篇续言的原因。因为,在上一篇文章中,我用了的示例都是非常简单的,主要是为了说明一些机理上的

2011-05-15 23:36:00 301

转载 c++中的常见泄漏(八)

<br />-------------------------------------------------------------------------- <br />*整理:Zsm。<br />*时间:2011-4-12。<br />*出处:http://blog.csdn.net/Zsm0107。<br />--------------------------------------------------------------------------没有将基类的析构函数定义为虚函数详细:<br

2011-05-14 23:44:00 263

转载 大内高手—常见内存错误

<br /><br />大内高手—常见内存错误<br /> <br /> <br />随着诸如代码重构和单元测试等方法引入实践,调试技能渐渐弱化了,甚至有人主张废除调试器。这是有道理的,原因在于调试的代价往往太大了,特别是调试系统集成之后的BUG,一个BUG花了几天甚至数周时间并非罕见。<br /> <br />而这些难以定位的BUG基本上可以归为两类:内存错误和并发问题。而又以内存错误最为普遍,即使是久经沙场的老手,也有时也难免落入陷阱。前事不忘,后世之师,了解这些常见的错误,在编程时就加以注意,把出错的

2011-05-14 23:44:00 227

转载 c++中的常见泄漏(六)

<br />-------------------------------------------------------------------------- <br />*整理:Zsm。<br />*时间:2011-4-18。<br />*出处:http://blog.csdn.net/Zsm0107。<br />--------------------------------------------------------------------------<br />缺少重载赋值运算符<br />详

2011-05-14 23:42:00 243

转载 c++中的常见泄漏(七)

<br /> c++中的常见泄漏(七)-------------------------------------------------------------------------- <br />*整理:Zsm。<br />*时间:2011-4-19。<br />*出处:http://blog.csdn.net/Zsm0107。<br />--------------------------------------------------------------------------<br />   

2011-05-14 23:42:00 229

转载 c++中的常见泄漏(五)

<br />  c++中的常见泄漏(五)-------------------------------------------------------------------------- <br />*整理:Zsm。<br />*时间:2011-4-17。<br />*出处:http://blog.csdn.net/Zsm0107。<br />---------------------------------------------------------------------------<br />缺

2011-05-14 23:41:00 382

转载 c++中的常见泄漏(四)

<br />-------------------------------------------------------------------------- <br />*整理:Zsm。<br />*时间:2011-4-16。<br />*出处:http://blog.csdn.net/Zsm0107。<br />---------------------------------------------------------------------------<br />指向对象的指针数组不同于对象数

2011-05-12 22:54:00 365

转载 c++中的常见泄漏(三)

<br />-------------------------------------------------------------------------- <br />*整理:Zsm。<br />*时间:2011-4-15。<br />*出处:http://blog.csdn.net/Zsm0107。<br />---------------------------------------------------------------------------<br />在释放对象数组时在delete

2011-05-12 22:53:00 205

转载 c++中的常见泄漏(二)

<br />-------------------------------------------------------------------------- <br />*整理:Zsm。<br />*时间:2011-4-15。<br />*出处:http://blog.csdn.net/Zsm0107。<br />-----------------------------------------------------------------------------------<br />       

2011-05-12 22:52:00 213

转载 c++中的常见泄漏(一)

<br /> c++中的常见泄漏(一)--------------------------------------------------------------------------      <br />  *整理:Zsm。<br />  *时间:2011-4-14。<br />  *出处:http://blog.csdn.net/zsm0107。<br />------------------------------------------------------------------------

2011-05-12 22:51:00 201

转载 C++内存管理

<br /><br />C++内存管理<br />[导语]<br />内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,除非放弃C++,转到Java或者.NET,他们的内存管理基本是自动的,当然你也放弃了自由和对内存的支配权,还放弃了C++超绝的性能。本期专题将从内存管理、内存

2011-05-12 22:49:00 349

转载 C++对象是怎么死的?Win32线程篇

<br /><br />在前面的帖子 里聊完了进程终止对C++对象析构的影响。今天咱们来说一下线程对于C++对象析构的影响。<br />  由于C++ 03标准没有包含线程的概念,而C++ 0x尚未正式发布。所以对线程的讨论只好根据特定的操作系统平台来谈。对于操作系统自带的线程API,目前比较流行的款式是Windows平台提供的线程API和POSIX平台上的pthread API。但是这两种线程API的差异实在是太大,没法拿出来一起聊。我只好把“线程篇”的帖子再拆分一下,今天先来聊一聊Win32的线程API

2011-05-10 13:24:00 275

转载 C++对象是怎么死的?关于标准输入输出流(cout,cerr,clog,etc)的进一步探讨

<br /><br />昨天的帖子“C++ 对象是怎么死的?进程篇 ”里面,谈到全局对象的析构顺序,当时我举了一个“在析构函数中使用cout”的例子(详见原文 )。我当时的本意是想说明:全局对象的析构顺序是不确定的,最好不要在程序逻辑中依赖这个顺序(免得出现移植问题)。<br />   没成想该帖子引来热烈的评论(我有点受宠若惊了),关注的焦点主要集中在:“cout是否会最后析构”。有些网友质疑我所提到的有关VC6的行为;有网 友引用了TC++PL上的相关章节(21.5.2)来说明“cout会最先构造、最后

2011-05-10 13:23:00 357

转载 C++对象是怎么死的?POSIX线程篇

<br /><br />上一个帖子 聊完了Win32环境下和线程有关的C++对象死亡问题,今天得说一说POSIX的线程库pthread了。如果你对pthread不太了解,可以先看看维基百科 的介绍。<br /><br />  ★三种死法 <br />  废话少说,照例先介绍三种死法。<br />  1、自然死亡<br />上一个帖子 已经介绍了Win32线程的自然死亡,pthread的自然死亡和它差不多,也是线程对应的线程函数通过return返回。<br />  2、自杀<br />  对于“自杀”,POS

2011-05-10 13:20:00 321

转载 C++对象是怎么死的?进程篇

<br /><br />我承认这个帖子的名称有标题党的嫌疑,但是暂时想不出更好的名称了,只好先这样了 :-( <br />  由于前天的帖子聊了架构设计的多进程问题 ,所以今天想起来要聊一下和“C++进程终止”相关的那些事。与前几个C++帖子的风格类似,今天聊的内容,尽量局限于标准C++范畴,尽量不涉及特定的操作系统平台。<br /><br />  ★关于进程的三种死法 <br />  由于今天讲的是“进程篇”,自然得先搞明白进程的几种死法。其实进程和大活人一样,也有三种死法,分别是“自然死亡、自杀、它杀”

2011-05-10 13:19:00 325

转载 C++对象是怎么死的?为什么要写这个系列?

<br /><br />要说C++对象是怎么死的,得先从C++的析构函数说起。这玩意儿是我本人很喜欢的一个语言特性(可惜有好几个语言没有类似的玩意儿,具体就不点名 了,免得引发口水战)。我们可以利用C++的构造和析构函数,来实现Guard模式,写出比较清晰、简练和异常安全的代码。由于Guard模式在C++程序中运用挺多,所以保证所有对象被析构 就是一个很重要很严肃的问题。 <br />  另外,我发现很多C++程序员只关心内存泄露问题,不关心(或不清楚)资源泄露问题(很类似于我在“Java新手通病[3] ”

2011-05-10 13:18:00 278

原创 C++类对象内存模型与成员函数调用分析(下)

<br /><br />2.4.2 多重继承下的虚拟函数<br /><br />多重继承下的虚拟函数主要有一下几个麻烦:<br />1.         几个父类都声明了相同原型的virtual函数;<br />2.         有不止一个父类将其析构函数声明为虚拟;<br />3.         一般的虚拟函数问题;<br />先给出代码段9。<br />class Parent1{<br />public:<br />   Parent1() : data_parent1(0.0){}<br />

2011-05-09 22:12:00 254

转载 C++类对象内存模型与成员函数调用分析(中)

<br /><br />2.4 虚拟成员函数<br />这<br />是本文中最复杂也最有趣的话题了。虚拟函数也是和继承这个话题相伴相生,所以本节将纳入对单继承、多重继承和虚拟继承,一起描述他们之间的关系,这样,对C++对虚拟函数的调用,以及由此所变现出来的多态的理解,应该是非常清晰了。<br />2.4.1 单继承下的虚拟成员函数<br />对于虚拟函数,我们首先引入两个数据结构,为什么引入一会就知道了。<br />1.         Virtual table. 大名鼎鼎的vtbl,如果一个类有虚拟函

2011-05-09 22:10:00 294

转载 C++类对象内存模型与成员函数调用分析(上)

<br /><br />C++类对象内存模型是一个比较抓狂的问题,主要是C++特性太多了,所以必须建立一个清晰的分析层次。一般而言,讲到C++对象,都比较容易反应到以下这个图表:<br /> <br /><br /> <br />这篇文章,就以这个表格作为分析和行文的策略的纵向指导;横向上,兼以考虑无继承、单继承、多重继承及虚拟继承四方面情况,这样一来,思维层次应该算是比较清晰了。<br />1、C++类数据成员的内存模型<br />1.1 无继承情况<br />实验最能说明问题了,首先考虑下面一个简单的程

2011-05-09 22:09:00 282

转载 学习C++:实践者的方法(转)

<br /><br />学习C++:实践者的方法(Beta1)<br />By 刘未鹏(pongba)<br />C++的罗浮宫(http://blog.csdn.net/pongba)<br /><br />前言<br />我的blog以前很长一段时间关注的都是C++中的技术&细节,乃至于读者和应者都寥寥。然而5月份的时候写的一篇“你应当如何学习C++”,阅读量却达到了3万多,在blog上所有文章中却是最高的(且远远超过了第二位);评论数目也有一百多。为什么独独这篇能够激起这么多的回应,想必是国内的C++

2011-05-09 21:58:00 380

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除