![](/img/trans.png)
[英]Is it bad practice to reference class member object from within another member of the same class?
[英]Accessing member objects from another member object within the same class
假设我有以下C ++代码:
class Circuit {
public:
Properties circuit_prop;
Library tech_libray;
InstanceList instances;
}
Properties
, Library
和InstanceList
是我的代码中定义的类。 例如, InstanceList
类具有一个名为build
的成员函数。 是否可以在不将其作为build
参数传递的情况下访问成员对象circuit_prop
或tech_library
? 解决这个问题的最佳方法是什么?
不,这是不可能的,因为InstanceList
可能也存在于Circuit
之外。
如果您有一个需要访问各种成员的方法,则应进入具有那些成员的类(在您的情况下为Circuit
。
另外, InstanceList
需要知道它所属的Circuit
,在这种情况下,它可以通过Circuit
的公共接口访问成员。
仅仅因为类是同一类的关联成员,并不意味着它们可以自由访问彼此的成员对象。 我想说做circuit_prop
和tech_library
成员InstanceList
会比让他们在同一类的所有成员更好。 这样,您可以让Circuit
从set
自由get
设置,或者通过将Circuit
成为InstanceList
的friend class
来自由访问它们
circuit_prop或tech_library范围仅在Circuit类中,最好在Circuit内部创建一个方法,该方法具有单独类所需的所有公共访问权限。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.