首先考虑类声明:
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
变量中包含不同的值。
答案 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