关于文件结构,请高手看下,火急!!!!!
我定义了 三个文件,MIPArrayI.h,MIPArray.h,test.h,怎么编译不通啊?
//MIPArrayI.h
#ifndef MIPARRAYI_H
#define MIPARRAYI_H
#include <set>
#include "MIPArray.h "
using namespace std;
class MIPArray;
template <class X>
class MIPArrayI
{
set <MIPArray <X> *> m_HandleSet;//用set记录指向它的句柄。
};
#endif
//MIPArray.h
#ifndef MIPARRAY_H
#define MIPARRAY_H
#include "MIPArrayI.h "
using namespace std;
class MIPArrayI;
template <class X> //MIPArrayI的句柄类
class MIPArray
{
public:
MIPArrayI <X> * m_pImpl;//
};
#endif
//test.h
#include "MIPArray.h "
#include "MIPArrayI.h "
void main()
{
MIPArrayI <int> t;
}
[解决办法]
前置声明增加 模板 声明:
//MIPArrayI.h
#ifndef MIPARRAYI_H
#define MIPARRAYI_H
#include <set>
#include "MIPArray.h "
using namespace std;
template <class X> //!! 另外一个文件中的声明类似处理
class MIPArray;
template <class X>
class MIPArrayI
{
set <MIPArray <X> *> m_HandleSet;//用set记录指向它的句柄。
};
#endif