如果我有C++:C++虚函数的实现?
class A {
private: virtual int myfunction(void) {return 1;}
}
class B: public A {
private: virtual int myfunction(void) {return 2;}
}
然后,如果我从myfunction
定义class B
删除virtual
,这是否意味着,如果我有一个基于class B
class C
,我不能覆盖myfunction
,因为它会静态编译?
另外,我很困惑,当你在公共场合切换时会发生什么,而在这里是私人的。如果我将myfunction
中的class B
的定义更改为公开(并且class A
中的那个保持私密),这是否是我不应该这样做的严重错误?我认为虚拟功能需要保持相同的类型,这是非法的,但请让我们知道这是不对的。
谢谢!
不需要为派生类方法显式编写“虚拟”关键字。你可以忽略它,但它是一个很好的风格。 – varnie 2009-11-05 11:11:49