【发布时间】:2011-12-30 17:54:10
【问题描述】:
我试图了解从父类继承方法时何时需要在头文件中声明函数。
例如,假设我有以下课程:
class parent{
public:
virtual void foo()= 0;
}
假设我有一个从父类继承的子类,我是否还必须在子类的头文件中声明 foo 或者我可以简单地在源文件中为子类定义方法?
下面的声明会不正确吗?
头文件:
class child : public parent{
}
类文件:
child::foo(){
// do something
}
【问题讨论】:
-
foo应声明为virtual。除此之外,如果您要覆盖foo(您几乎必须这样做,因为它是纯虚拟的),那么您需要在子类中将其声明为类定义的一部分。 -
foo()也应该声明为public,否则继承自parent的类无法访问它。 -
C++ 实际上允许私有虚函数(甚至允许你覆盖它们)。通常是让派生类指定基类期望的一些功能,而不让它成为接口的一部分。
标签: c++ inheritance