【发布时间】:2015-06-03 15:00:33
【问题描述】:
class CDB;
class CDM
{
public:
friend CDB& CDB::Add(const CDM&);
CDM& Add(const CDB&);
};
class CDB
{
public:
CDB& Add(const CDM&);
friend CDM& CDM::Add(const CDB&);
};
此代码给了我错误:错误 C2027:使用未定义的类型“CDB”。如何解决这个问题。
【问题讨论】:
-
你不能。你必须让一个类完全成为另一个类的朋友,或者让一个类嵌套在另一个类中。
-
您需要实例化朋友类的对象才能建立链接。例如在 CDM 中,调用 CDB::Add 对什么对象进行操作?如果函数是静态的,你也许可以摆脱它。
标签: c++ circular-dependency forward-declaration friend-function