在类组合中,包含的类可以访问容器类变量

时间:2017-02-01 18:33:53

标签: c++

首先考虑类声明:

class Container
{
public:
    Container();
    void funcMember();
private:
    int dataMember;
};

class Contained
{
public:
    Contained();
    int contmember();
private:
    int somedata;
};

现在的想法是Contained类是在Container类中声明的,因此它可以被多次声明,并且可以随时创建和删除,在本例中来自{ {1}}中的{1}}。

我的问题:有没有办法让funcMember()Container的每个实例都能在Contained个实例中访问Container

注意:多个dataMember对象可以在Container变量中包含不同的值。

1 个答案:

答案 0 :(得分:0)

您可以使用selText和嵌套类来执行此操作:

<强> friend

Container.h

在另一个TU中提供实现,看看完全声明的class Container { class Contained; // <<< Forward declare friend class Contained; // <<< Allow access from Contained class Contained { public: Contained(Container& cont_) : cont(cont_) {} int contmember(); private: int somedata; Container& cont; }; public: Container(); void funcMember(); private: int dataMember; }; 类:

<强> Container

Container.cpp