****编辑*** 经过几句评论后,我就凭直觉同意了我的观点 (作为参数传递)
我真正追求的是应该或不应该用作班级成员的准则 ****编辑***
说该类示例具有 公共职能很少
class Example
{
public:
A(int x);
G();
H();
Z();
private:
B();
C();
D();
E()
}
正在呼叫A,并呼叫A-> B-> C-> D-> E。 在E函数中,我们需要使用在A中获得的X参数,但B,C,D没有任何作用。
一个选择是将int x存储为类成员,然后将其获取到E中。 另一种方法是将其作为参数传递给B-> C-D-> E。
在我看来,将其存储为成员是一种不好的做法,因为它与类状态或数据无关,但是在大多数代码中,我看到这已经完成了。
曾尝试向Google查询类成员的合法用法,但未发现任何内容。
在我看来,就像oop中的成员一样,这是使用的替代性坏习惯 全球人。
我在哪里可以找到意见或数据?
我正在使用c ++
答案 0 :(得分:2)
另一种方法是将其作为参数传递给B-> C-D-> E。
此选项很有意义。
如果E需要一个参数,那么它应该接受一个参数。如果D调用E,则D应该提供该参数。如果D无法提供其他方式,那么它也需要使用该参数,依此类推。我推荐这种方法。
我认为将其存储为成员是一种不好的做法,因为它与类状态或数据无关。
这是合理的推理。
还要考虑所有这些功能是否都引用对象本身。如果不是,则它们可能应该是静态成员,甚至应该是自由函数。
答案 1 :(得分:0)
从A
的接口来看,x
似乎不是该类固有的。因此,将其保留为类的成员变量没有任何意义。
如果E
需要它,则必须将其作为函数的参数。
如果D
需要使用它来调用E
,则需要将其作为函数的参数。
等等...
我认为您最好的选择是将x
的{{1}}传递到A()
。
E()