我有一个基类B,在b.h中我声明了虚函数vf((和常规函数f((。
我有一个后代类 D,我希望在其中覆盖 vf((。 我已经在 d 中实现了 vf(.cpp
-
我必须在 d.h 中声明 vf(( 吗? (签名完全相同(
-
如果我不覆盖函数 f((,我是否还必须在 d.h 中重新声明 f(( ?
成员函数声明和定义是齐头并进的。除非声明成员函数,否则无法定义该函数。如果声明成员函数但未定义它,则可能会在链接时看到未定义的函数错误。函数声明的virtual
方面是正交的。
来回答你的问题,
- 我必须在 d.h 中声明 vf(( 吗?(签名完全相同(
是的。
- 如果我不覆盖函数 f((,我是否还必须在 d.h 中重新声明 f(( ?
不。