gpt4 book ai didi

c++ - 需要在后代 .h 文件中重新声明被覆盖的函数

转载 作者:行者123 更新时间:2023-11-28 04:50:44 25 4
gpt4 key购买 nike

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

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

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

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

最佳答案

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

回答您的问题,

  1. Do I have to declare vf() in d.h ? (With the exact same signature)

是的。

  1. If I do NOT override function f(), do I also have to redeclare f() in d.h ?

没有。

关于c++ - 需要在后代 .h 文件中重新声明被覆盖的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48268454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com