私は本当に理解していない問題があります。クラスNodeを持っています。テンプレート付きのC++クラスでコンストラクタが見つかりません
template<class T>
class node {
protected:
T _data;
public:
node(T data);
};
これは "node.h"ファイルにあります。 "node.cpp" ファイルでは、このコンストラクタがあります:
#include "node.h"
template<class T>
node<T>::node (T data) {
_data = data;
}
コンパイラがエラーを発見しませんが、リンカ(ld)が私に語った:
は/ usr/binに/ LD:未定義のシンボル:
ノード< int型> ::ノード(int型)
変な部分...コンストラクタを.cppから.hファイルに移動すると、すべて正常に動作します。問題はどこだ?
を使用プライベートである必要がありますが、そうである必要はありません)。 – rmeador