【发布时间】:2021-04-03 16:17:55
【问题描述】:
我很困惑如何将一个简单类的实现和声明代码分离到一个新的头文件和 cpp 文件中。比如下面这个类的代码怎么分开?
class A2DD
{
private:
int gx;
int gy;
public:
A2DD(int x,int y)
{
gx = x;
gy = y;
}
int getSum()
{
return gx + gy;
}
};
【问题讨论】:
-
只是几个 cmets:构造函数应该始终使用初始化列表,而不是在主体中设置成员。对于一个好的和简单的解释,请参阅:codeguru.com/forum/showthread.php?t=464084 至少在大多数地方,公共字段也习惯在顶部。它不会影响任何事情,但由于公共字段是您的课程的文档,因此将其放在顶部是有意义的。
-
@martiert 顶部有
public:成员可能会影响很多,如果用户根据此建议移动它们 - 但有订购成员之间的依赖关系,并且还不知道成员按其声明的顺序初始化;-) -
@underscore_d 这是真的。但是话又说回来,我们都在编译时将警告作为错误以及我们能想到的所有警告,对吧?这至少会告诉你你把这件事搞砸了,但是,是的,人们使用很少的警告,只是忽略它们:(
-
@martiert 好点,有点忘了生成警告 - 如果大多数人只阅读警告:-) 我使用它们并尝试将它们全部编码。有些是不可避免的——所以我说“谢谢你的警告,但我知道我在做什么!” - 但大多数最好修复以避免以后混淆。
-
在顶部设置公共字段只是一种风格,在我看来,不幸的是,太多人采用了这种风格。此外,您需要记住@martiert 提到的一些事项。