摘要: 1、类的对象通过一个虚函数表vftb来维护类中所有的虚函数,vftb相当于一个元素类型为函数指针的数组2、派生类继承基类中的虚函数,如果没有在派生类中重新定义虚函数,则虚函数表中相同虚函数的地址值是相同的,否则,不相同3、派生类如果想重新定义基类中的虚函数,则派生类中虚函数的申明与基类相同,定义不同4、虚函数实现了晚期绑定技术,普通的成员函数的调用直接在编译阶段就确定了,而虚函数则在编译时生成:对象-》虚函数表-》函数的形式,因此只有动态运行根据具体的对象来调用函数55、C++ 通过虚函数来实现多态,可以将派生类的地址值赋给基类的指针、可以将派生类的值赋给基类的引用。这种情况下指针或引用与所指 阅读全文
posted @ 2013-04-14 18:19 郭远威 阅读(414) 评论(0) 推荐(0) 编辑
摘要: 1、编译器会为类生成默认的构造函数、复制构造函数、赋值函数、析构函数,当然默认的这些函数,只是简单的将对象的成员进行赋值。2、如果类中的成员对象包含有需要通过new动态分配内存的成员,则需要重新定义复制构造函数、重载赋值操作符、析构函数、带参数的构造函数,默认的构造函数。3、派生类构造时,会先调用基类的构造函数(根据派生类的构造函数类型,调用基类对应形式的构造函数),接着调用派生类型的构造函数。4、当类的生命周期结束时,会先调用派生类的析构函数、接着调用基类的析构函数。5、构造函数和析构函数不能被继承,各自处理各自成员赋值与析构。6、深入理解对象生命的开始、结束,以及对象在内存中的位置(是在栈 阅读全文
posted @ 2013-04-14 15:58 郭远威 阅读(465) 评论(0) 推荐(0) 编辑