会产生编译错误:return type ‘class B’ is incomplete
a.h,A类是一个模板类:
#ifndef A_H
#define A_H
#include "b.h"
class B;
template <typename T>
class A
{
public:
A(){}
B print();
};
template <typename T>
B A<T>::print()
{
B b;
return b;
}
#endif // A_H
b.h
#ifndef B_H
#define B_H
#include "a.h"
class B
{
public:
B();
A<B> get();
};
#endif // B_H
b.cpp:
#include "b.h"
B::B()
{
}
A<B> B::get()
{
return A<B>();
}
A通过print函数可以返回一个B的对象,B通过get函数可以获得A< B > 的对象。如何才能不报错?