0

私の目標は、リンクされたリストを介して、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 を使用せずにクラスを作成する最初の試みです - 何を見落としましたか?

4

1 に答える 1

1

プロジェクトから「Stack.cpp」を削除します。ソリューション エクスプローラーにあります。

于 2013-06-01T19:45:39.720 に答える