プライベート仮想関数を使用する理由はわかっていますが、どのように正確に実装できますか?
例えば:
class Base{
[...]
private:
virtual void func() = 0;
[...]
};
class Derived1: public Base{
void func()
{ //short implementation is ok here
}
};
class Derived2: public Base{
void func(); //long implementation elsewhere (in cpp file)
};
[...]
void Derived2::func()
{ //long implementation
}
最初のバージョンは問題ありませんが、常に可能であるとは限りません。2番目のバージョンは単に名前を隠すのではありませんか?のクラス宣言内でそれを行うことができない場合、Base::func()
のをどのように定義しますか?Derived2
Dereived2
ありがとう