c++速学教程(入门到精通)
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
一 构造函数中能调用虚函数,实现多态吗
1)对象中的vptr指针什么时候被初始化?
对象在创建的时,由编译器对vptr指针进行初始化
只有当对象的构造完全结束后vptr的指向才最终确定
父类对象的vptr指向父类虚函数表
子类对象的vptr指向子类虚函数表
class Parent { public: Parent(int a=0)//执行时此时的调用的print函数仍然是父类的函数(此时会将vptr指针指向父类的虚函数表) { this->a = a; print(); } virtual void print() { coutb = b; print(); } virtual void print() { coutprint(); //有多态发生 //2 动手脚 } void main() { Child c1; //定义一个子类对象 ,在这个过程中,在父类构造函数中调用虚函数print 能发生多态吗? system("pause"); return ; }
二 父类指针步长和子类指针步长不一致时
class Parent { public: Parent(int a=0) { this->a = a; } virtual void print() { coutb = b; print(); } */ Child(int b = 0):Parent(0) { //this->b = b; } virtual void print() { coutprint(); //有多态发生 //2 动手脚 } void main() { Child c1; //定义一个子类对象 ,在这个过程中,在父类构造函数中调用虚函数print 能发生多态吗? //c1.print(); Parent *pP = NULL; Child *pC = NULL; Child array[] = {Child(1), Child(2), Child(3)}; pP = array; pC = array; pP->print(); pC->print(); //多态发生 pP++; pC++; pP->print(); pC->print(); //多态发生 pP++; pC++; pP->print(); pC->print(); //多态发生 cout<p><img src="https://img.php.cn//upload/image/234/238/223/1484538803895169.png?x-oss-process=image/resize,p_40" title="1484538803895169.png" alt="69.png"></p><p>以上就是C++复习要点总结十一——多态(二)的内容,更多相关内容请关注PHP中文网(www.php.cn)!</p>
C++免费学习笔记(深入):立即学习
>在学习笔记中,你将探索 C++ 的入门与实战技巧!
已抢7204个
抢已抢94855个
抢已抢14826个
抢已抢52068个
抢已抢194763个
抢已抢87280个
抢