C++ friend class 循环包含
C++ friend class circular include
我有这个问题:
我有 class A,他是 class B 的朋友。class A 有一个 vector<B>
。但我希望 class B 能够访问 class A.
class A
{
friend class B;
static vector<B*> buffer;
}
Class B
{
public:
B()
{
A::buffer.push_back(this);
}
}
有没有其他方法可以自动将 class B 添加到向量中?
感谢您的帮助!
您的代码几乎可以正常工作。
- 您需要转发声明
B
- 您需要使用
A::buffer.push_back(this);
class B; // forward declaration
class A {
friend class B;
public:
static std::vector<B*> buffer;
};
std::vector<B*> A::buffer{};
class B {
friend class A;
public:
B();
};
B::B() { A::buffer.push_back(this); }
我有这个问题:
我有 class A,他是 class B 的朋友。class A 有一个 vector<B>
。但我希望 class B 能够访问 class A.
class A
{
friend class B;
static vector<B*> buffer;
}
Class B
{
public:
B()
{
A::buffer.push_back(this);
}
}
有没有其他方法可以自动将 class B 添加到向量中?
感谢您的帮助!
您的代码几乎可以正常工作。
- 您需要转发声明
B
- 您需要使用
A::buffer.push_back(this);
class B; // forward declaration
class A {
friend class B;
public:
static std::vector<B*> buffer;
};
std::vector<B*> A::buffer{};
class B {
friend class A;
public:
B();
};
B::B() { A::buffer.push_back(this); }