ISO C++ 使用多重繼承:Adapter : public ITarget, private Adaptee(介面公有、實作私有)。C# 單一繼承:Adapter : Adaptee, ITarget(繼承類別、實作介面)。
class Adapter : public ITarget, private Adaptee {
public:
virtual void request() const { specificRequest(); }
};
class Adapter : Adaptee, ITarget {
public void request() { specificRequest(); }
}
C++ 私有繼承隱藏實作細節,C# 僅能公開繼承類別。兩者 request() 均直接呼叫繼承而來的 specificRequest(),無需額外委派欄位,程式碼最精簡。