STLの派生クラスを書き込もうとしていset<>
ますが、リンクエラーが発生しました。
ヘッダーファイルSet.h
:
#pragma once
#include <set>
using namespace std;
template <class Ty>
class Set : public set<Ty> {
public:
Set(void);
virtual ~Set(void);
};
補助ソースファイルSet.cpp
:
#include "Set.h"
template <class Ty>
Set<Ty>::Set(void) {}
template <class Ty>
Set<Ty>::~Set(void) {}
メインプログラム:
#include <iostream>
#include "../myLibrary/Set.h"
#pragma comment(lib, "../x64/Debug/myLibrary.lib")
using namespace std;
int main() {
Set<int> s;
s.insert(1); s.insert(2); s.insert(3);
for(Set<int>::const_iterator it = s.begin(); it!=s.end(); it++)
wcout << *it << endl;
return 0;
}
これは発生します
Set.obj : *warning* LNK4221:
と
_Entry_myLibrary_TEST.obj :error LNK2019: "public: virtual __cdecl Set<int>::~Set<int>(void)" (??1?$Set@H@@UEAA@XZ)