3

重複の可能性:
テンプレートを使用すると、「未解決の外部シンボル」エラーが発生するのはなぜですか?

私はlinkedListを作っています。外部イテレータを使用しています。Iteratorクラスはテンプレートであり、Iterator.hにメソッドを実装しています。

テンプレートは次のとおりです。

#pragma once

#include "Node.h"

 namespace list_1
 {

template<typename T>
class Iterator
{
public:
    Iterator<T> (Node<T> *np);
    void operator++();
    bool is_item();
    T operator* ();

private:
    Node<T>* n;
};

template<typename T>
Iterator<T>::Iterator (Node<T> *np)
{

}

template<typename T>
void Iterator<T>::operator++()
{

}

template<typename T>
bool Iterator<T>::is_item()
{
    return false;
}

template<typename T>
T Iterator<T>::operator* ()
{

}
 }

コンパイルしようとすると、次のエラーメッセージが表示されます。1>list_test.obj : error LNK2019: unresolved external symbol "public: void __thiscall list_1::Iterator<double>::operator++(void)"

さらに、プロジェクト全体で約7つの同様のエラーが発生します。

私はここで何か間違ったことをしていますか?それとも私が間違っていることですか?

ありがとう!

4

1 に答える 1

0

エラーメッセージを正しく読んだ場合、イテレータはNode<T>入力として受け取りますが、適用doubleされていません。型をサポートnon-Node<T>するには、特化する必要がありますIterator<T>

public: void __thiscall list_1::Iterator<double>::operator++(void)"
                                         ^^^^^
于 2013-01-25T03:16:07.903 に答える