私は2つの他の抽象クラスを実装するシングルトンクラスを持っています。クラスインスタンスを作成できません
thisMonkey = new monkey()
のために私のmonkey :: getMonkeyが失敗しました。 "抽象クラス型のオブジェクト" monkey "が許可されていません"を返します。私は抽象クラスをインスタンス化できないことを知っていますが、私の猿は2つの抽象クラスを実装しています(つまり、抽象クラスではありません)。
この解決策には何がありますか?
class monkey : public animal,
public npc {
public:
~monkey();
static monkey* getMonkey();
private:
monkey();
static monkey* thisMonkey;
}
monkey::monkey() {};
monkey::~monkey() {};
/* .. implements the virtual methods of animal and npc ... */
monkey::getMonkey() {
if (!thisMonkey)
thisMonkey = new monkey();
return thisMonkey;
}