万水千山只等闲

常用链接

统计

最新评论

第2章 掌握C++

如果一个类中没有定义任何构造函数,那么C++编译器在某些情况下会为该类提供一个默认的构造函数,这个默认的构造函数是一个不带参数的构造函数。只要一个类汇总定义了一个构造函数,不管这个构造函数是否是带参数的构造函数,C++编译器就不再提供默认的构造函数。

如果一个类中没有定义任何的构造函数,那么编译器只有在以下三种情况,才会提供默认的构造函数:

1)         如果类有虚拟成员函数或者虚拟继承父类(即有虚拟基类)时;

2)         如果类的基类有构造函数(可以是用户定义的构造函数,或编译器提供的默认构造函数);

3)         在类中的所有非静态的对象数据成员,它们所属的类中有构造函数(可以是用户定义的构造函数,或编译器提供的默认构造函数)。

在类中定义成员变量时,不能直接给成员变量赋初值。

基类中的private成员不能被派生类访问,因此private成员不能被派生类所继承。

函数的覆盖:基类函数必须是虚函数,发生覆盖的两个函数分别位于派生类和基类中,函数的名称与参数列表必须完全相同。

函数的隐藏:派生类中具有与基类同名的函数,不考虑参数列表是否相同,从而在派生类中隐藏了基类的同名函数。

生成可执行文件有两个步骤:1.C++编译器对源文件单独进行编译:先由预处理器对预处理指令进行处理,在内存中输出翻译单元;编译器接收预处理的输出,将源代码转换成包含机器语言指令的目标文件。注意,在编译过程中,头文件不参见编译。2.连接器将目标文件和所用到的C++类库文件一起链接生成可执行文件。

posted on 2012-06-05 09:33 Winnie 阅读(263) 评论(0)  编辑 收藏 引用 所属分类: VC++深入详解


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理