从同一个类中的另一个成员对象访问成员对象

时间:2013-10-31 13:15:21

标签: c++

假设我有以下C ++代码:

class Circuit {
    public:
    Properties circuit_prop;
    Library tech_libray;
    InstanceList instances;
}

PropertiesLibraryInstanceList是我的代码中定义的类。例如,类InstanceList有一个名为build的成员函数。是否可以访问成员对象circuit_proptech_library而不将其作为参数传递给build?解决这个问题的最佳方法是什么?

3 个答案:

答案 0 :(得分:2)

不,这是不可能的,因为InstanceList可能同样存在于Circuit之外。

如果您有一个需要访问各种成员的方法,它应该进入具有这些成员的类 - 在您的情况下,Circuit

或者,InstanceList需要知道它所属的Circuit,在这种情况下,它可以通过Circuit的公共接口访问成员。

答案 1 :(得分:1)

仅仅因为类是同一个类的关联成员并不意味着它们可以自由访问其他成员对象。我会说circuit_prop成员tech_libraryInstanceList成员比让他们成为同一个班级的所有成员更好。通过这种方式,您可以Circuitget set设置中免费访问它们,或者Circuit friend class InstanceList

答案 2 :(得分:1)

circuit_prop或tech_library范围仅在Circuit类中,最好在Circuit内部创建一个方法,该方法具有单独类所需的所有公共访问权限。