首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

派生类中的虚函数可以访问父类的虚函数,机制是什么?该怎么解决

2012-08-15 
派生类中的虚函数可以访问父类的虚函数,机制是什么?看代码:C/C++ codevirtual void dev_class::v_func1(){

派生类中的虚函数可以访问父类的虚函数,机制是什么?
看代码:

C/C++ code
virtual void dev_class::v_func1(){    base_class::v_func1();    cout << "This is dev_class's v_func1()" << endl;}


dev_class的虚函数表中,dev_class::v_func1()应该把base_class::v_func1()覆盖掉了,但是为什么还可以访问base_class::v_func1()呢?base_class::v_func1()的函数指针放在哪了呢?

求教,谢谢!

[解决办法]
这个不通过虚函数指针来调用, 和普通函数调用一样, 编译器直接把函数地址插入到调用的地方.
[解决办法]
探讨

这个不通过虚函数指针来调用, 和普通函数调用一样, 编译器直接把函数地址插入到调用的地方.

[解决办法]
虚函数也是函数。子类的函数是可以调用父类的函数的。所以子类的虚函数是可以调用父类的虚函数的。vptr中是存放了虚函数的地址,但是并不是所有访问虚函数都得通过vptr。
有啥错误,敬请指正
[解决办法]
当派生类和父类有同名的虚函数的时候,派生类实际上并没有覆盖调父类的方法,当要访问父类同名方法的时候,可以通过base::method的方式调用!

热点排行