需要在后代.h文件中重新声明重写的函数

时间:2018-01-15 18:06:28

标签: c++ inheritance override

我有一个基类B,在b.h中我声明了虚函数vf()和常规函数f()。

我有一个后代D类,我希望覆盖vf()。我在d.cpp中实现了vf()

  1. 我必须在d.h中声明vf()吗? (使用完全相同的签名)

  2. 如果我不覆盖函数f(),我是否还必须在d.h中重新声明f()?

1 个答案:

答案 0 :(得分:1)

成员函数声明和定义齐头并进。除非声明成员函数,否则无法定义成员函数。如果声明成员函数并且未定义它,则可能会在链接时看到未定义的函数错误。函数声明的virtual方面是正交的。

回答你的问题,

  
      
  1. 我必须在d.h中声明vf()吗? (使用完全相同的签名)
  2.   

  
      
  1. 如果我不覆盖函数f(),我是否还必须在d.h中重新声明f()?
  2.   

没有