在考虑我当前的编程项目时,我遇到了以下问题:
我有 2 个模板类,每个模板类都应该能够调用另一个模板类,如下面的代码所示。
问题:有没有办法将此代码保存在单独的头文件中(一个用于 A,一个用于 B)?
template <typename T>
class B;
template <typename T>
class A {
public:
void foo() {
m_b->bar();
}
void bar() {
// ...
}
private:
B<T> *m_b;
};
template <typename T>
class B {
public:
void foo() {
m_a->bar();
}
void bar() {
// ...
}
private:
A<T> *m_a;
};
编辑:我刚刚注意到,真正的问题是:
如果我有文件 Ah 和 Bh,有没有办法从另一个只包含 Ah 的文件中调用 A::foo()?