【发布时间】:2013-05-28 19:30:06
【问题描述】:
我正在阅读编程原理和使用 c++ 的实践(Bjarne Stroustrup),
9.4.4 定义成员函数,第 312 页,它说
1.
在类定义中编写成员函数的定义有两个效果...
2.
不要将成员函数体放在类声明中,除非你知道...
作者写错了吗?讲的是同一件事,为什么第一句是“类定义”,第二句是“类声明”?
谢谢
【问题讨论】:
-
作者谈到在类定义中定义成员函数有哪些缺陷?仅供参考,对于类模板,这样做是必要的。
-
是的……除了行话怪癖之外,这听起来像是个坏建议。在
class {}块内定义函数没有错;这通常是实现inline函数的最清晰方法。对于类模板的非模板友元的(不常见)情况,您必须在该范围内定义它。 -
@Praetorian - 在类定义中定义成员函数对于类模板不需要。这是一种常见的风格,使代码看起来很像 Java。但总的来说,没有什么可以阻止在模板定义之外使用适当的限定名称定义成员函数。
-
@PeteBecker 真;但我指的是将定义与源文件和头文件中的声明分开,在类模板的情况下你不能这样做(除非你也
#include源文件)。