2

我一直不清楚究竟有多少声明行(通常放在头文件中)使其进入函数定义的第一行。如果在定义中重复某些关键字会导致编译失败,而有些则不会。

例如,考虑一个继承自std::exception. 函数的重新定义what()通常看起来像

virtual const char* what() const throw();

好的。如果我在源文件中定义它,并且我准确地复制了这一行

virtual const char* what() const throw() {}

编译失败并显示类似“虚拟外部类声明”的消息。我删除了“虚拟”,它编译得很好。函数声明的哪些部分需要在其定义中重复的规则是什么?静止的?排队?是否有简明扼要地描述哪些部分是必要的参考资料?

4

1 回答 1

3

这是对声明和定义的内容的一个很好的解释:

于 2012-06-03T01:27:48.517 回答