重复成员函数的调用
一道作业题,想了很久都不知道怎么做,内容如下:
- C/C++ code
class Base { public: virtual void mf1() = 0; virtual void mf1(int x); virtual void mf2(); void mf3(); void mf3(double x); int t;};class Derived: public Base { public: virtual void mf1(); //using Base::mf1; //using Base::mf3; void mf3(); void mf4(); using Base::t;};int main(){ Derived d; int x; d.mf1();//1 d.mf1(x);//2 d.mf2();//3 d.mf3();//4 d.mf3(x);//5}main中d所调用的函数(如果能调用的话)依次都是哪个类中的哪个函数?如果发生错误,将如何修改?
很明显,1,3,4都能成功调用。请问应该如何修改class Derived?使2和5能调用到Base中的成员函数(使用using)
求指点
[解决办法]
virtual void mf1() = 0;纯虚函数在子类中没实现,要在子类中调用父类的函数,使用Base.mf3()就行了!
[解决办法]
Base:FUN();调用父类
FUN();调用子类