如果我定义这样的类:
class A{
public:
A(){}
virtual ~A(){}
virtual void func(){}
};
Run Code Online (Sandbox Code Playgroud)
这是否意味着虚拟析构函数并且func内联
我对以下情况有点困惑,它们是否是正确的覆盖功能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){...}
};
Run Code Online (Sandbox Code Playgroud)
顺便说一下,访问权限的变化是否会有所不同?比如,我像这样编写Derived类:
class Derived:public Base{
private://or protected:
virtual Base* copy(Base* b){...}
...
};
Run Code Online (Sandbox Code Playgroud)