わかりましたみんな...私は次のクラスを持っています
#include <functional>
template <typename TValue, typename TPred = std::less<TValue>>
class BinarySearchTree {
struct TNode {
TValue value;
TNode *pLeft;
TNode *pRight;
};
public:
BinarySearchTree();
~BinarySearchTree();
. . .
private:
TNode *pRoot;
. . .
};
次に、.cpp ファイルで ctor/dtor を次のように定義しました。
template <typename TValue, typename TPred>
BinarySearchTree<TValue, TPred>::BinarySearchTree() : pRoot(0) {}
template <typename TValue, typename TPred>
BinarySearchTree<TValue, TPred>::~BinarySearchTree() {
Flush(pRoot);
}
私の主な機能:
int main() {
BinarySearchTree<int> obj1;
return 0;
}
そして、次のリンケージエラーが発生します:
public: __thiscall BinarySearchTree<int,struct std::less<int>>::BinarySearchTree<int,struct std::less<int> >(void)
コンストラクター定義をヘッダー ファイルに入れようとしましたが、エラーは発生しません。cppファイルで定義しようとした場合のみ。