摘要:
首先要明确一点,派生类的对象可以被当做基类对象对待,因为派生类包含基类的所有成员。反之则不成立。 因此,将基类指针指向派生类对象是安全的。此时这个基类指针只能调用基类的成员函数。 如果试图用基类指针调用派生类才具有的成员函数,编译器会报错。虚函数的出现可以解决这个问题。通过基类指针在派生类对象上调用 阅读全文
posted @ 2020-04-28 19:49
Conan-Peng
阅读(2194)
评论(0)
推荐(0)
摘要:
派生类在创建对象时会先调用基类的构造函数,调用的顺序和继承基类的顺序相同,然后才会调用自己的构造函数。 在派生类中,析构函数各部分的执行顺序和构造函数的调用顺序刚好相反,即派生类的析构函数先对其新增的一般成员进行析构,然后对新增的成员对象进行析构,最后按照与其“继承基类相反的顺序”调用基类的析构函数 阅读全文
posted @ 2020-04-28 18:46
Conan-Peng
阅读(266)
评论(0)
推荐(0)
摘要:
构造函数不可以是虚函数。因为类的虚函数表指针是在构造函数中初始化的,在虚表指针没有被正确初始化之前,我们不能调用虚函数。 构造函数和析构函数也不能调用虚函数,前者是因为虚表指针还没有被初始化,后者是因为虚表指针可能已经被析构了。 0i 存在虚函数的类都有一个一维的虚函数表,简称虚表。类的每个对象都有 阅读全文
posted @ 2020-04-28 18:44
Conan-Peng
阅读(1696)
评论(0)
推荐(0)
摘要:
inline必须与函数定义放在一起,一般放在头文件中; 在编译的时候,编译器会把函数的代码副本放置在每一个调用函数的地方。而其他函数是在运行时才被替代。 内联函数可以大大减少函数调用带来的开销,提高运行的效率。但是内联函数只是向编译器提出的一个建议,如果函数体过大,编译器可能会拒绝内联函数的建议,只 阅读全文
posted @ 2020-04-28 16:40
Conan-Peng
阅读(174)
评论(0)
推荐(0)
摘要:
--从源文件到可执行文件的过程?以hello.cpp为例 分为四个过程,分别是预处理,编译,汇编,链接。 预处理->hello.i去掉注释,展开宏定义,处理预编译指令 编译->hello.s将预处理的文件进行词法分析,语法分析,语义分析产生汇编代码文件 汇编->hello.obj把汇编代码翻译成目标 阅读全文
posted @ 2020-04-28 16:06
Conan-Peng
阅读(310)
评论(0)
推荐(0)

浙公网安备 33010602011771号