たまにゃC++のお話。
C++にはprivate継承, protected継承ゆーもんがあります。
private継承は実装を継承する(けど利用者には触らせない)のに使います。
# あんまり薦められたもんじゃないけど。
そんじゃprotected継承は何に使いましょ。
ひとつ思いつくのがインタフェース継承の裏返し、データ継承ってやつ。
たとえばこんなヘルパークラスを考える:
template<int>
class Triplet {
public:
T first, second, third;
};
"Tの三つ組"ですな。んでもって:
class Point3D : protected Triplet<int> { /* 3次元空間上の点 */ };
class Circle2D : protected Triplet<int> { /* 中心座標と半径 */ };
class Date : protected Triplet<int> { /* 年月日 */ };
なんてな。
同型の3要素をメンバとしたいクラスが Triplet<T> をprotected継承するっす。
要らねーよそんなもん…ごもっとも ^^;