老实说,我对头文件中函数(有时是数据成员)声明中的关键字与实现文件中的关键字感到困惑。
要遵循的规则是什么?例如
(根据评论更新)
- 头文件不包含实现,除非函数被声明为“内联”
- 数据成员不包含默认值,除非类型为 static、const、int/enum(C++11 除外)
- public/private/protected 通常出现在头文件中
- “静态”通常出现在头文件中,而不是实现文件中。
你还有其他我可以遵循的规则吗?常数?
继承权呢?我认为“虚拟”只出现在头文件中?如果我从A类继承虚函数到B类,B类的头文件是否必须声明它覆盖的虚函数?A类中的纯虚函数怎么样,当我在B类中重写时,我是否必须在派生类的头文件中包含纯虚函数定义?