两个模板类有两个方法,每个方法调用另一个类的方法:
// Foo.h
template<typename T>
class Foo {
public:
static void call_bar() {
Bar<int>::method();
}
static void method() {
// some code
}
};
// Bar.h
template<typename T>
class Bar {
public:
static void call_foo() {
Foo<int>::method();
}
static void method() {
// some code
}
};我怎么才能让它工作呢?简单地将#include "Bar.h"添加到Foo.h (反之亦然)是行不通的,因为每个类都需要另一个类。
编辑:我也尝试了转发声明,但在链接阶段仍然失败:
// Bar.h
template <typename T>
class Foo {
public:
static void method();
};
// Foo.h
template <typename T>
class Bar {
public:
static void method();
};https://stackoverflow.com/questions/50689555
复制相似问题