#ifndef CLASSB
#define CLASSB
#include "ClassA.h"
namespace name {
class ClassB
{
public:
static Handle conn();
};
}
#endif
-
#include "ClassB.h"
Handle name::ClassB::conn()
{
return getHandle(ClassA::it().str());
}
-
#ifndef CLASSA
#define CLASSA
#include "ClassB.h"
namespace name {
class ClassA
{
public:
template <typename T>
T myFunc(const std::string&)
{
auto tmp = ClassB::conn();
}
};
}
#endif
调用 ClassB :: conn()会产生编译错误,表示未声明类 ClassB 。当我转发声明它时,我收到一条关于不完整类型的错误消息。
我无法将模板功能移动到我的.cpp文件,因为它是模板功能。那么,如何解决这个问题?
答案 0 :(得分:0)
只需从类#include "ClassA.h"
的标题中删除B
即可。但是您的代码似乎存在多个编译问题,因此很难说(缺少函数getHandle
,缺少it()
,缺少类型Handle
等)。