このコードで何が間違っていますか?C++の抽象基本クラステンプレート
template <class T>
class A
{
private:
T a;
public:
A(): a(0) {}
virtual ~ A() = 0;
};
template <class T>
class A;
template <class T>
class B : public A<T>
{
private :
T b;
public:
B() : A<T>() {}
virtual ~B(){}
};
int _tmain(int argc, _TCHAR* argv[])
{
B <double> bb;
return 0;
}
エラーLNK2019:未解決の外部シンボル "パブリック:仮想__thiscallのA ::〜A(無効)"(?? 1 $ A @ N @@ UAE @ XZ?)「パブリック関数の中で参照:仮想__thiscall B ::〜B(空白)」
のデストラクタを呼び出すようにしようとします。 (移植可能ではありませんが、どちらも '_tmain(int、_TCHAR * [])'です) –
私はあなたもGCCでできると信じています。しかし、私はそれを純粋な仮想として宣言することはできませんし、同時にインラインで実装することはできません(クラス定義の後にインラインで実装しない限り)。 –