假设我有以下C ++代码:
class Circuit {
public:
Properties circuit_prop;
Library tech_libray;
InstanceList instances;
}
Properties
,Library
和InstanceList
是我的代码中定义的类。例如,类InstanceList
有一个名为build
的成员函数。是否可以访问成员对象circuit_prop
或tech_library
而不将其作为参数传递给build
?解决这个问题的最佳方法是什么?
答案 0 :(得分:2)
不,这是不可能的,因为InstanceList
可能同样存在于Circuit
之外。
如果您有一个需要访问各种成员的方法,它应该进入具有这些成员的类 - 在您的情况下,Circuit
。
或者,InstanceList
需要知道它所属的Circuit
,在这种情况下,它可以通过Circuit
的公共接口访问成员。
答案 1 :(得分:1)
仅仅因为类是同一个类的关联成员并不意味着它们可以自由访问其他成员对象。我会说circuit_prop
成员tech_library
和InstanceList
成员比让他们成为同一个班级的所有成员更好。通过这种方式,您可以Circuit
从get
set
设置中免费访问它们,或者Circuit
friend class
InstanceList
{ p>
答案 2 :(得分:1)
circuit_prop或tech_library范围仅在Circuit类中,最好在Circuit内部创建一个方法,该方法具有单独类所需的所有公共访问权限。