gpt4 book ai didi

C++ "Rules"关键字包含在头文件与源/实现文件中

转载 作者:行者123 更新时间:2023-11-30 02:56:50 26 4
gpt4 key购买 nike

老实说,我对头文件中函数(有时是数据成员)声明中的关键字和实现文件中的关键字感到困惑。

要遵循的规则是什么?例如

(根据评论更新)

  • 头文件不包含实现,除非函数被声明为“内联”
  • 数据成员不包含默认值,除非类型是 static、const、int/enum(C++11 除外)
  • public/private/protected 通常出现在头文件中
  • “静态”通常出现在头文件中,而不是实现文件中。

还有其他我可以遵循的规则吗?常量?

继承呢?我假设“虚拟”只出现在头文件中?如果我将A类的虚函数继承到B类,B类的头文件是否必须声明它覆盖的虚函数?如果在 A 类中使用纯虚函数,当我在 B 类中重写时,是否必须在派生类的头文件中包含纯虚函数定义?

最佳答案

看起来您在不了解其工作原理的情况下试图制定一些正式规则。但这真的很简单,当预处理器看到#include 指令时,它只是将其替换为该文件的内容(这就像命令复制整个文件并将其粘贴到此处)。因此,与其制定正式规则,不如问问自己以下问题:该声明是否应该出现在使用该 header 的每个 .cpp 文件中?他们还会编译吗?我真的到处都需要它,还是只能在一个提供实现的 .cpp 文件中?如果答案是肯定的,那么这个语句应该去标题,如果不是,然后把它放到.cpp 实现文件中。

关于C++ "Rules"关键字包含在头文件与源/实现文件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15158582/

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