【发布时间】:2018-08-09 17:43:44
【问题描述】:
在下面的示例中,我希望能够在函数ShareData 中访问类B 中的向量cList。我该怎么做?
我已经编写了一个示例代码。它无法编译(错误消息:B 没有构造函数)。即使确实如此,cObj = new B(*this); 行是否会引入任何循环依赖?
#include "stdafx.h"
#include <vector>
class B;
class A
{
public:
B* cObj;
std::vector<B*> cList;
A()
{
cObj = new B(*this);
}
};
class B
{
public:
B(A& aObj) : aObjLocal(aObj) {};
void ShareData(int result)
{
for (auto& iterator : aObjLocal.cList)
{
(*iterator).ShareData(result);
}
}
private:
A& aObjLocal;
};
void main()
{
A aMain;
B bMain(aMain);
bMain.ShareData(10);
}
提前感谢您分享知识。
【问题讨论】:
标签: c++ class pointers function-pointers