如果我在标题文件中使用关键字的声明,则应该在定义本身中包含相同的关键字
If I have a declaration with keywords in the header file, should I include the same keywords in the definition itself?
我是C 的新手,尽管具有少量的编程体验,并且想知道是否在定义中包括关键字有任何全局共识。
例如(例如,不是有效的语句):
class Dog : Animal {
void foo() const override final foo bar ... keywords;
}
通常建议(为了清楚起见)在定义中执行相同的操作,还是我应该放弃它们?
Dog::foo() const override final foo bar ... keywords {
//
}
如果在声明中包含在定义中必须包含任何关键字?
答案取决于特定的关键字。
正如讲故事的人在注释中所指出的那样,const
IS 函数签名的一部分。使用const
的声明和一份声明没有声明的声明(并且超载分辨率将确定在给定表达式中将使用哪个声明)。volatile
也是如此。因此,您将必须在定义中也使用它,以便可以匹配声明和定义。
virtual
不得在成员定义中使用,并且同样适用于override
和final
。这些关键字不影响功能签名。
因此,由于它不是主观的,因此无需共识。这两个规则有两个艰难的规则,也有一个原因。
相关文章:
- 如何确保C++函数在定义之前声明(如override关键字)
- 在 c++ 中正确定义"this"关键字?
- 只要我不包含一个标题,重新定义C++关键字合法吗
- 如何使用 "using" 关键字定义函数原型/签名
- 设置自定义收集器时不会提升::log尊重关键字::max_size吗?
- 如何添加自定义关键字以 clang 格式被视为"class"?
- 为什么静态成员函数定义不能有关键字"static"?
- C++ 包含中的"未定义"模块关键字
- C++不使用"inline"或"static"无类函数的关键字时出现重定义链接错误
- 虚拟关键字的使用与C++中的简单重新定义
- 在构造函数中使用关键字 "this" 时定义复制构造函数
- 我应该在源文件之间共享的常量的定义中添加关键字"extern"吗
- 如果我返回const定义的对象,为什么const关键字被取消资格
- 如果我在标题文件中使用关键字的声明,则应该在定义本身中包含相同的关键字
- 具有多个定义时,对于外部关键字没有错误
- C++:定义类函数的.cpp文件中实例本身的表示关键字
- 为什么我应该使用"typename"关键字来定义?
- 错误 RC2104:未定义的关键字或键名称:DS_SETFONT
- 重新定义(#define)保留的c++关键字
- Extern关键字定义静态数据成员和成员函数,c++