クラスBaseA{}; 、クラスDerivedB {}; クラスDerivedC{};
DerivedBはBaseAから派生できます:許可したい:クラスDerivedB:パブリックBaseA
しかし、誰かがDerivedCを実行しようとした場合:publicBaseA==>これを制限したい。
出来ますか?
クラスBaseA{}; 、クラスDerivedB {}; クラスDerivedC{};
DerivedBはBaseAから派生できます:許可したい:クラスDerivedB:パブリックBaseA
しかし、誰かがDerivedCを実行しようとした場合:publicBaseA==>これを制限したい。
出来ますか?
すべてBaseA
のコンストラクターをプライベートにして、のとして追加することDerivedB
ができます。friend
BaseA
class BaseA
{
friend class DerivedB;
private:
BaseA();
};
class DerivedB : BaseA
{
};
class DerivedC : BaseA //error - I get it when I try to create an object in MSVS
//but in principle it works
{
};