
C Plus Plus
文章平均质量分 76
chocolate_22
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
派生类对象初始化构造过程顺序
#include using namespace std;class A { private: int a; public: A(int x):a(x) { cout <<a <<" "; } };class B: A转载 2011-10-12 21:34:06 · 2455 阅读 · 0 评论 -
C++#define的用法(含特殊)
1 无参宏定义无参宏的宏名后不带参数。其定义的一般形式为: #define 标识符 字符串其中的“#”表示这是一条预处理命令。凡是以“#”开头的均为预处理命令。“define”为宏定义命令。“标识符”为所定义的宏名。“字符串”可以是常数、表达式、格式串等。在前面介绍过的符号常量的定义就是一种无参宏定义。此外,常对程序中反复使用的表达式进行宏定义。例如: #d转载 2011-08-26 10:06:43 · 4440 阅读 · 0 评论 -
c++ 虚函数 构造函数 析构函数
一、虚函数和构造函数 当创建一个含有虚函数的对像是,必须初始化它的VPTR以指向相应的VTABLE,这必须在对虚函数进行任何调用之前完成,而设置VPTR这项工作是由构造函数来完成。编译器在构造函数的开头部分秘密地插入能初始化VPTR的代码,如果我们没有为一个类显式创建构造函数,则编译器会为我们生成构造函数。如果该类含有虚函数,则生成的构造函数将会包含相应的VPTR初始化代码。转载 2011-11-16 23:25:11 · 870 阅读 · 0 评论 -
c++ 虚函数
一、动态捆绑与虚函数 把函数体与函数调用相联系称为捆绑,当捆绑在程序允许之前(由编译器和连接器)完成时,这称为早捆绑。而在运行时根据对象的类型进行的捆绑被称为晚捆绑,又称为动态捆绑,或运行时捆绑。当一个语言实现晚捆绑时,必须有某种机制来确定运行时对象的类型并调用合适的成员函数,对于一种编译语言,编译器并不知道实际的对象模型,但它插入能找到和调用正确函数体的代码。 对于转载 2011-11-15 21:47:03 · 605 阅读 · 0 评论 -
c++ 纯虚函数
一、抽象基类和纯虚函数 在设计时,常常希望基类仅仅作为其派生类的一个接口,也就是说,仅想对基类进行向上类型转换,使用它的接口,而不希望用户创建一个基类的对象。要做到这一点,可以在基类中加入至少一个纯虚函数,来使基类成为抽象类,如果某人试着生成一个抽象类的对象,编译器会制止他。另外,当继承一个抽象类时,必须实现所有的纯虚函数,否则继承出的类也将是抽象类。 建立转载 2011-11-16 21:50:34 · 2783 阅读 · 0 评论 -
c++ 继承和组合
构造函数的初始化列表 当创建一个对象时,编译器总是确保调用了所有的子对象的构造函数,如果子对象有自己的默认构造函数,那么编译器可以自动地调用它们。但是,如果子对象没有默认构造函数,或者想改变构造函数的某个默认参数,这就会出现问题,因为这个新类的构造函数没有权利访问这个子对象的私有数据成员,所有不能直接对它们初始化。解决的方法就是:构造函数初始化列表。 MyT转载 2011-11-15 20:57:54 · 727 阅读 · 0 评论