【发布时间】:2013-08-24 16:26:24
【问题描述】:
我对以下情况有点困惑,它们是覆盖函数copy但不重载的正确方法,还是全部正确?
class Base{
public:
virtual Base* copy(Base* b){...}
};
class Derived:public Base{
public:
virtual Base* copy(Base* b){...}//I know this should work
// but how about the followings?
//virtual Base* copy(Derived* b){...}
//virtual Derived* copy(Base* b){...}
//virtual Derived* copy(Derived* b){...}
};
顺便说一句,访问权限的更改有什么不同吗?比如说,我这样写派生类:
class Derived:public Base{
private://or protected:
virtual Base* copy(Base* b){...}
...
};
【问题讨论】:
-
我不明白你的问题。你能改写一下吗?您是在询问覆盖虚函数的规则吗?
-
是的,我现在改写它
标签: c++ inheritance polymorphism overriding virtual