プライベート継承はC++でサポートされており、パブリック継承のみがC#でサポートされていることを知っています。また、プライベート継承は通常、クラス間のHAS-A関係と一種の集約関係を定義するという記事に出くわしました。
編集:プライベート継承のC ++コード:「Carhas-a Engine」の関係は、プライベート継承を使用して表現することもできます。
class Engine {
public:
Engine(int numCylinders);
void start(); // Starts this Engine
};
class Car : private Engine { // Car has-a Engine
public:
Car() : Engine(8) { } // Initializes this Car with 8 cylinders
using Engine::start; // Start this Car by starting its Engine
};
さて、私が知りたいことの1つであるC#クラス間のHAS-A関係を作成する方法はありますか?
もう1つの興味深い質問は、C#がプライベート(および保護された)継承をサポートしないのはなぜですか?-複数の実装の継承をサポートすることは、正当な理由またはその他の理由ではありませんか?
プライベート(および保護された)継承は、C#の将来のバージョンで計画されていますか?
C#でプライベート(および保護された)継承をサポートすることで、C#はより優れた、広く使用されている言語になりますか?