- 博客(10)
- 收藏
- 关注
转载 c++内存管理详解
伟大的Bill Gates 曾经失言: 640K ought to be enough for everybody— Bill Gates 1981 程序员们经常编写内存管理程序,往往提心吊胆。如果不想触雷,唯一的解决办法就是发现所有潜伏的地雷并且排除它们,躲是躲不了的。本文的内容比一般教科书的要深入得多,读者需细心阅读,做到真正地通晓内存管理。 1、内存分配方式 内存分配方式有三
2008-03-07 13:43:00 449
转载 嵌套类的用法
一个类可以在另一个类中定义这样的类被称为嵌套类(nested class)。 嵌套类是其外围类的一个成员,嵌套类的定义可以出现在其外围类的公有、私有或保护区中。嵌套类的名字在其外围类域中是可见的但是在其他类域或名字空间中是不可见的。这意味着嵌套类的名字不会与外围域中声明的相同名字冲突。例如 class Nod
2008-02-28 11:29:00 2234
转载 深入分析MFC文档视图结构(项目实践)
深入分析MFC文档视图结构(项目实践) 文档视图结构(Document/View Architecture)是MFC的精髓,也是Observer模式的具体实现框架之一,Document/View Architecture通过将数据和其表示分开,提供了很好的数据层次和表现层次的解耦。然而,虽然我们使用MFC AppWizard就可以很轻松地获得一个支持Document/View Arc
2007-12-18 17:36:00 507
转载 关于typedef的用法
关于typedef的用法 一.基本概念剖析 int* (*a[5])(int, char*); //#1 void (*b[10]) (void (*)())
2007-11-06 16:58:00 309
转载 构造函数和析构函数的调用
类继承中构造函数和析构函数的调用现在,有三个类,类的定义如下class CA{public: CA(){cout ~CA(){cout};class CB:public CA{public: CB(){cout ~CB(){cout};class CC:public CB{public: CC(){cout ~CC(){cout};CA是爷爷,C
2007-09-25 21:00:00 427
转载 解析动态联编
作者信息:地址:南京邮政局计算机中心 210008 电子邮件: tingya@njpost.com.cn tingya@263.net 一 从多态性谈动态联编的必要性在进入主题之前先介绍一下联编的概念。联编就是将模块或者函数合并在一起生成可 执行代码的处理过程,同时对每个模块或者函数调用分配内存地址,并且对外部访问也分配正确的内存地址。按照联编所进行的阶段不同,可分为两种不同的联编方法:静态联
2007-09-02 17:26:00 481
转载 虚函数表深度分析
每个含有虚函数的类有一张虚函数表(vtbl),表中每一项指向一个虚函数的地址,实现上是一个函数指针的数组。 虚函数表既有继承性又有多态性。每个派生类的vtbl继承了它各个基类的vtbl,如果基类vtbl中包含某一项,则其派生类的vtbl中也将包含同样的一项,但是两项的值可能不同。如果派生类重载(override)了该项对应的虚函数,则派生类vtbl的该项指向重载后的
2007-09-02 17:13:00 692
原创 c++中虚函数的地址
近来对c++兴趣颇浓,尤其对虚函数这种神奇的作用更是佩服,读了书上说的就想去验证验证,再说实践是检验真理的惟一标准吗,说干就干吧! 书上说,如果基类定义了一个虚函数,而继承类又没有重载这个虚函数,那么在基类和继承类各自的虚函数表里, 它们的虚函数地址是一样的,而如果重载这个虚函数,两个虚函数表里面的虚函数的地址就不同。因此特地对这个说法在visual c++ 6.
2007-09-02 16:17:00 866
原创 c++中引用和指针的内部实现
c++中,引用和指针时比较让人混淆的。它们的外在区别想必很多人都知道。在这我再重复一下。引用在定义时必须初始化,即该引用所引用的必须时确实存在的变量,不能为NULL。而指针就没有这个限制。有人说,引用就相当于一个变量的别名,对该引用所做的操作就相当于对原变量一样。我不太认同这个看法。在内部实现上,其实引用也是通过地址实现的。因此我更想称引用为一种特殊的指针。让我们看看下面这个简单的例子。#
2007-08-31 17:10:00 910
转载 operator new和operator delete 的用法
C++里允许用户通过自定义operator new的方式来更改new表达式的行为,这给了程序员定制内存管理方案的自由。但是享受这种自由的时候必须遵守一定的规范,具体可以参见《Effective C++ 2nd》的相关条款。本文补充解释一些特别容易引起误解的问题。 operator new和operator delete都有其正规形式(normal signature):void
2007-08-29 13:53:00 1252
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人