【发布时间】:2021-10-05 19:45:06
【问题描述】:
我有两节课。一个依赖于另一个类,另一个包含一个与第一个类友好的函数。这门课还有很多其他的东西,但归根结底就是:
class LightBase;
class Color
{
friend void LightBase::UpdateColor();
};
class LightBase
{
public:
void UpdateColor();
protected:
std::vector<Color> colors_;
};
但显然我的前向声明是不正确的。我明白了:
error: invalid use of incomplete type 'class LightBase'
我知道UpdateColor() 在朋友声明时是未知的。但是我该如何解决呢?
【问题讨论】:
-
你可以使用另一个命令,
LightBase只需要声明Color,而Color需要定义LightBase(要知道它有成员UpdateColor)。跨度>
标签: c++ class dependencies declaration friend