浏览 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了呢 谢谢 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2008-07-08
pa->fun()调用时父类的fun()方法已经被hide了
decline指的啥?调用父类的方法? 希望pa->fun()调用父类的方法就不加virtual |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-08
请看输出
明显 pa->fun() 运行的结果是调用了父类的方法 A::fun()是一个public的 B::fun()是一个private的 且没有做任何事情 但是pa->fun却又输出了a, fun在继承类中有被声明 切为private 难道我的表达有误 |
|
| 返回顶楼 | |
|
最后更新时间:2008-07-08
关于decline pa->fun()的意思 就是编译器报错 说调用了一个private的函数
|
|
| 返回顶楼 | |


