论坛首页 入门讨论版 其他综合

如何将基类的一个public函数给hide了?

浏览 197 次
该帖已经被评为新手帖
作者 正文
最后更新时间:2008-07-03 关键字: c++
class A{
public:
    virtual void fun(){cout << "a" << endl; };
};

class B : public A{
    virtual void fun(){};
};

int main()
{
    A a;
    B b;
    A *pa = new B;
    
    b.A::fun();
    pa->fun();
}

他的输出是
引用

a
a


怎么样才能使
pa->fun() 这个调用被decline了呢 谢谢
   
最后更新时间:2008-07-08
pa->fun()调用时父类的fun()方法已经被hide了
decline指的啥?调用父类的方法?
希望pa->fun()调用父类的方法就不加virtual
   
0 请登录后投票
最后更新时间:2008-07-08
请看输出
明显 pa->fun() 运行的结果是调用了父类的方法
A::fun()是一个public的
B::fun()是一个private的 且没有做任何事情
但是pa->fun却又输出了a, fun在继承类中有被声明 切为private

难道我的表达有误
   
0 请登录后投票
最后更新时间:2008-07-08
关于decline pa->fun()的意思 就是编译器报错 说调用了一个private的函数
   
0 请登录后投票
论坛首页 入门讨论版 其他综合

跳转论坛:
JavaEye推荐