c 公有继承的问题

[复制链接]
查看11 | 回复9 | 2011-11-10 01:12:26 | 显示全部楼层 |阅读模式
<br/>#includeiostream<br/>classjl{<br/>public:<br/>        //构造函数<br/>        jl(inta,intb,intc):pro_date(b),pro_date2(c),pri_date(a){}<br/>        //显示成员<br/>        intget_ProDate(){returnpro_date;}<br/>        intget_ProDate2(){returnpro_date2;}<br/>        intget_PriDate(){returnpri_date;}<br/>        voidset_PriDate(inta){pri_date=a;}//设置私有成员jl::pri_date的值<br/>protected:<br/>        intpro_date;<br/>        intpro_date2;<br/>private:<br/>        intpri_date;<br/>};<br/>
<br/>//public继承,没有继承jl::pri_date<br/>classjc_jl:publicjl{<br/>public:<br/>        //构造函数<br/>        jc_jl(inta,intb,intc,intd,inte):jl(a,b,c),da1(d),da2(e){}<br/>        //显示成员<br/>        intget_da1(){returnda1;}<br/>        intget_da2(){returnda2;}<br/>private:<br/>        intda1;<br/>        intda2;<br/>};<br/>
<br/>voidmain(){<br/>        jc_jla(1,2,3,4,5);<br/>
<br/>        //pri_date(1),pro_date(2),pro_date2(3),da1(4),da2(5)<br/>        //显示1(没有继承jl::pri_date,为什么能使用)<br/>        std::cout\"a.get_PriDate():\"a.get_PriDate()std::endl<br/>        //显示2<br/>                \"a.get_ProDate():\"a.get_ProDate()std::endl<br/>        //显示3<br/>                \"a.get_ProDate2():\"a.get_ProDate2()std::endl<br/>        //显示4<br/>                \"a.get_da1():\"a.get_da1()std::endl<br/>        //显示5<br/>                \"a.get_da2():\"a.get_da2()std::endl;<br/>        //还能设置他的值<br/>        a.set_PriDate(9);<br/>        //设置后能正确显示<br/>        std::cout\"a.get_pridate():\"a.get_PriDate()std::endl;<br/>}<br/>
回复

使用道具 举报

千问 | 2011-11-10 01:12:26 | 显示全部楼层
public继承并不是说不继承父类的private成员,是继承的,只是在子类的成员函数中无法访问父类的私有成员。
回复

使用道具 举报

千问 | 2011-11-10 01:12:26 | 显示全部楼层
提问人的追问
                               
                                2011-09-2722:11
                       
                        就是说继承是被“屏蔽”了,在子类的成员函数无法使用。但是可以通过父类的成员函数来访问<br/>是这个意思吗
回复

使用道具 举报

千问 | 2011-11-10 01:12:26 | 显示全部楼层
团队的补充
                                2011-09-2722:12
                       
                       
                        没错,私有函数是要通过接口才可以访问的
回复

使用道具 举报

千问 | 2011-11-10 01:12:26 | 显示全部楼层
提问人的追问
                               
                                2011-09-2722:16
                       
                       
                        但是cprimer中是说:基类的public成员为派生类的public成员,基类的protected为派生类的protected成员,并无提到private成员的继承方式啊,也可以理解为没继承吧
回复

使用道具 举报

千问 | 2011-11-10 01:12:26 | 显示全部楼层
团队的补充
                                2011-09-2722:18
                       
                        尽信书,不如无书。<br/>《CPrimer》是一本很不错的教材,比较权威,一般不会出现错误。书上说的意思是基类的public成员为派生类的public成员,基类的protected为派生类的protected成员,并无提到private成员的继承方式啊,可以理解为不成为子类的成员
回复

使用道具 举报

千问 | 2011-11-10 01:12:26 | 显示全部楼层
提问人的追问
                               
                                2011-09-2722:21
                       
                        就是说它继承了,但是这个用不了就像生物中的有些人继承了一些基因,但是是隐性的是吧
回复

使用道具 举报

千问 | 2011-11-10 01:12:26 | 显示全部楼层
团队的补充
                                2011-09-2722:22
                       
                       
                        嗯,与遗传有一定相似之处。
回复

使用道具 举报

千问 | 2011-11-10 01:12:26 | 显示全部楼层
<liclass=\"good\">
回复

使用道具 举报

千问 | 2011-11-10 01:12:26 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行