Possible Duplicate:
C++: overriding public\private inheritanceプライベート仮想関数
class base {
public:
virtual void doSomething() = 0;
};
class derived : public base {
private: // <-- Note this is private
virtual void doSomething()
{ cout << "Derived fn" << endl; }
};
は今
- をそれも、それかかわらず、派生クラスの関数を呼び出すことができますプライベートです。これはどのように可能ですか?
'type cast' : conversion from 'Derived *' to 'base *' exists, but is inaccessible
注:私は、パブリックからプライベート/保護への継承アクセス指定子を変更した場合
は今、私はコンパイルエラーを取得する私は、継承アクセス指定子の概念を認識しています。だから、それがプライベート/保護された2番目のケースでは、アクセスできない。しかし、最初の質問に対する答えが不思議です。どんな入力も高く評価されます。
私は、エラーの原因を知るのではなく、アクセス指定がそのように機能する理由を知りたいと思うと思います。 – Hossein