私の目標は、リンクされたリストを介して、int、string などのテンプレートとして機能する独自のスタックを作成することです。以下に 2 つの重要なファイルを示します。
メイン.cpp
#include <iostream>
#include <string>
#include "Stack.h"
using namespace std;
int main()
{
Stack<int>* myStack = new Stack<int>();
myStack->add(5);
system("pause");
return 0;
}
Stack.h
#pragma once
#include <iostream>
#include <string>
#include "LinkedList.h"
using namespace std;
template <class T>
class Stack
{
public:
Stack()
{}
~Stack()
{}
void add(const T& val);
....
private:
LinkedList<T> myStack;
};
template<class T>
inline void Stack<T>::add(const T& val)
{
myStack.newHead(val);
}
....
私はもともと Stack の実装を独自の .cpp に入れていましたが、問題があり、メンバー関数を .h とインラインで定義するように勧められました。奇妙なことに、Main.cpp を実行すると、次のようになります。
「エラー C1083: ソース ファイルを開けません: 'Stack.cpp': そのようなファイルまたはディレクトリはありません。」
これは、.cpp を使用せずにクラスを作成する最初の試みです - 何を見落としましたか?