永发信息网

定义基类base,有两个公有成员函数fn1(),frn2(),私有派生出derived类,

答案:2  悬赏:0  手机版
解决时间 2021-03-23 10:47
  • 提问者网友:戎马万世
  • 2021-03-22 14:37
定义基类base,有两个公有成员函数fn1(),frn2(),私有派生出derived类,
最佳答案
  • 五星知识达人网友:荒野風
  • 2021-03-22 16:14
fn1如果是非虚函数,则可以通过下面方式
    derived *p = new derived;

    void (base::*pfn1)();
    pfn1 = &base::fn1;
    (*p.*pfn1)();调用基类的fn1。如果fn1是虚函数,则派生类中的虚函数列表中没有指向基类的fn1这个函数,只有派生类中被override的fn1。所以没有办法调用基类的虚函数。如果是在derived的类成员函数,则可以调用基类的虚函数(注意,不要是纯虚函数)。
void derived::fn3()
{
    base::fn1();
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯