HOME


10章 継承の調整

委譲

}
stack{
先頭にpush,
先頭からpop
}
listの方がStackより拡張性がある。それなのにListの子クラスとしてStackを作ってしまう
class STACK: public LIST
と,Stackでありながら どこにでもadd, removeが出来てしまう。これはおかしい。
 
そんな場合、継承を使わず,ListをStackの属性,所有物とするのがよい。
class STACK{
private:
LIST MyList;
public :
void push( *data);
*data pop;
}
STACK::push(*data)
{
MyListの先頭にaddする。
}
*data STACK::pop(void)
{
MyListの先頭から抜き出す。
}
これを、Pushやpopという操作をListクラスに委譲した,という。


HOME