そのため、一緒にコンパイルしたいファイルがいくつかあります。それらの 1 つは、stack.cpp が含まれている stack.h です。
以下は私のヘッダーファイルです:
#include<iostream>
#ifndef STACK_H
#define STACK_H
template <class ItemType>
class StackType
{
public:
//code
private:
//code
};
#include "stack.cpp"
#endif
以下は、stack.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
問題が何であるかわかりません。