0
class A{
fct1(){};
};
class B:public A{
fct2(){};
};
// B b;
// A* a = &b; good! possible!!
class A{
fct1(){};
};
class B:protected A{
fct2(){};
};
//B b;
// A* a=&b; error!
なぜですか?基本型ポインタが派生クラスオブジェクトのアドレス値を取得できないのはなぜですか?
保護された継承とポインタとは何が関係していますか?
保護された継承によってパブリックエリアが保護されたエリアに変更され、派生したクラスだけがそのメンバーの関数と変数にアクセスできることがわかりました。 :(
原理とその理由を教えてください。アクセス制御の
それでは、保護された継承で多型を構築できませんか? –
とサブオブジェクトは、クラスでfct1のようなものを意味しますか?私は韓国語でC++を学びました:P –
"Polymorphism"は危険な曖昧な言葉です。通常、「動的多型」(または「仮想関数多型」)は** public **継承を指します。その多型の解釈では、 'B' *を' A'であるかのように扱いたいので、基本サブオブジェクトは公開でなければなりません。 –