所以我有幾個,我想編譯的文件一起其中一個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
我看不出問題所在。
什麼說你正在重新定義代碼?請發佈*確切*錯誤消息。 –