私は純粋な仮想メソッドを持つクラスのインターフェイスを持っています。別のクラスでは、Interfaceから継承したネストされた型を持ち、それを抽象化しません。私は型としてインターフェイスを使用し、型を初期化するために関数を使用しますが、私は取得している、抽象型のためにコンパイルできません。C++抽象型の初期化
インタフェース:
struct Interface
{
virtual void something() = 0;
}
実装:
class AnotherClass
{
struct DeriveInterface : public Interface
{
void something() {}
}
Interface interface() const
{
DeriveInterface i;
return i;
}
}
使用法:
struct Usage : public AnotherClass
{
void called()
{
Interface i = interface(); //causes error
}
}