读书人

子类对象如何调用父类中被子类覆盖掉的

发布时间: 2012-05-01 12:48:58 作者: rapoo

子类对象怎么调用父类中被子类覆盖掉的函数?
我定义了一个父类A一个子类B
A中有函数void mfunction(int a,int b, int c);
B中有函数void mfunction(int a,int b);

现在一个子类对象b要用到父类中的函数,该怎么调用呢?

C/C++ code
//父类中有函数:class A{public:void mfunction(int a,int b, int c);// ...// ...}//子类中有函数:class B: public A{public:void mfunction(int a,int b);//...//...}//int a=1;int b=2;int c=3;B b;b.mfunction(a,b,c); // VS报错:函数不接受 3 个参数//


[解决办法]
指定作用域
[解决办法]
B类有一个和基类A一样的函数,在C++的术语是“重写”,在B类的作用域,A的mfunction就被覆盖了,变得不可见,通过B的对象调用mfunction,编译器会认为是在调用用B::mfunction,所以如果想调用到A的mfunction,就需要显示的指明作用域A,就是你上面的写法


[解决办法]
原来楼主自己解决了。

读书人网 >VC/MFC

热点推荐