所以我有几个,我想编译的文件一起其中一个stack.h与stack.cpp 这就是我的头文件:制作生成文件的模板类
#include<iostream>
#ifndef STACK_H
#define STACK_H
template <class ItemType>
class StackType
{
public:
//code
private:
//code
};
#include "stack.cpp"
#endif
的话,我已经堆的.cpp
#include "stack.h"
#include <iostream>
using namespace std;
template<class ItemType>
StackType<ItemType>::StackType(){
top = -1;
MAX_ITEMS = 200;
}
//other codes
}
但它说,我重新定义代码stack.cpp
这就是我的makefile
main.o: main.cpp stack.h
g++ $(CFLAGS) -c -o main.o main.cpp
stack.o: stack.cpp stack.h
g++ $(CFLAGS) -c -o stack.o stack.cpp
我看不出问题所在。
什么说你正在重新定义代码?请发布*确切*错误消息。 –