仮想関数を未定義で使用できますか?

解決


ああ  2005-05-24 05:31:00  No: 57541

仮想関数を未定義で、別のメソッドに使用できますか?
具体的には、以下のソースの様な処理がしたいのですが。

class base {
public:
  void function1(); //下の仮想関数を用いる関数
  virtual void function2(); //仮想関数
};

void base::function1()
{
  function2(); //baseクラスでは、未定義
}

class derive : base {
  void function2();
}

void derive::function2(){ //こちらの派生クラスで仮想関数を定義
  //処理
}

どうでしょうか?よろしくお願いします。


ああ  2005-05-24 05:50:40  No: 57542

ごめんなさい。自己解決しました。
まったくの調べ不足でした。

一応説明を加えておきます。
上記の場合には純粋仮想関数を用います。
それには、以下のような記述をします。

class base {
public:
    void function1(); //下の仮想関数を用いる関数
    virtual void function2() = 0; //純粋仮想関数
};

これにより、派生クラスでのオーバーライドを必須とします。

申し訳ありませんでした。


ああ  2005-05-24 05:50:52  No: 57543

解決


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加