C++ 函数声明行的哪些部分位于定义的第一行?
Posted
技术标签:
【中文标题】C++ 函数声明行的哪些部分位于定义的第一行?【英文标题】:C++ what parts of a function declaration line goes in the first line of the definition? 【发布时间】:2012-06-03 01:21:41 【问题描述】:我一直不清楚有多少声明行(通常放在头文件中)进入函数定义的第一行。如果在定义中重复某些关键字会导致编译失败,而有些则不会。
例如,考虑从std::exception
继承的异常类。 what()
函数的重新定义通常看起来像
virtual const char* what() const throw();
好的,好的。如果我在源文件中定义它,并且完全复制这一行
virtual const char* what() const throw()
编译失败并显示类似“虚拟外部类声明”的消息。我删除了“虚拟”,它编译得很好。函数声明的哪些部分需要在其定义中重复的规则是什么?静止的?排队?有没有简明扼要地描述哪些部分是必要的参考资料?
【问题讨论】:
问题不在于说明符,而在于您没有定义类方法(名称不是例如std::exception::what
)。至于什么是必要的,什么是不必要的,会有人引用标准。
【参考方案1】:
这里很好地解释了声明和定义的内容:
http://msdn.microsoft.com/en-us/library/fash2fc6.aspx - 声明语法 http://msdn.microsoft.com/en-us/library/c4d5ssht.aspx - 定义语法【讨论】:
以上是关于C++ 函数声明行的哪些部分位于定义的第一行?的主要内容,如果未能解决你的问题,请参考以下文章