作者LPH66 (ha(ruhi|yate)ism)
看板Programming
标题Re: 关於c++的继承
时间Mon Jun 18 06:48:09 2007
※ 引述《[email protected] ( )》之铭言:
: 请教一下
: c++的继承可以写public/preotected/private
: 我的意思是class可以写
: class Hobbit:public people
: class Hobbit:protected people
: class Hobbit:private people
: 而这些不同的继承方式究竟会有什麽差别呢?
: 我有博硕的书 可是书本内没有解释这个
: 所以在此请教
: 谢谢
换一本书吧 这种东西是应该要解释的 (不然就是你没看到)
它们的差别大致如下
class base
{
public:
int base_pub;
private:
int base_priv;
protected:
int base_prot;
};
class pubDer: public base
{
void f()
{
base_pub=0; //OK, 它还是public
base_priv=0; //error, 因为它是private
base_prot=0; //OK, 它还是protected
}
};
class privDer: private base
{
void f()
{
base_pub=0; //OK, 但它变成private
base_priv=0; //error
base_prot=0; //OK, 它也变成private
}
};
class privDer2: public privDer
{
void g()
{
base_pub=0; //error, 因为在privDer中它是private
base_prot=0; //error, 同上
}
};
class protDer: protected base
{
void f()
{
base_pub=0; //OK, 但它变成protected
base_priv=0; //error
base_prot=0; //OK, 它还是protected
}
};
class protDer2: public protDer
{
void g()
{
base_pub=0; //OK, 因为在protDer中它是protected
base_prot=0; //OK, 同上
}
};
int main(void)
{
pubDer pubd;
privDer privd;
protDer protd;
pubd.base_pub=0; //OK, 因为它是public
privd.base_pub=0; //error, 因为它是private
protd.base_pub=0; //error, 因为它是protected
return 0;
}
--
有人喜欢边
玩游戏边
上逼;
也有人喜欢边
听歌边
打字。
但是,我有个请求,
选字的时候请
专心好吗?
-- 改编自「古 火田 任三郎」之开场白
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 192.192.197.116
1F:推 ephesians:漂亮 61.231.71.19 06/18 06:57