资源描述:
《计算机等考 c++备考之如何学习c++与面向对象:继承和组合》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、计算机等考C++备考之如何学习C++与面向对象:继承和组合等考C++备考之如何学习C++与面向对象:继承貌似我们没有人没有父亲的,对吧?既然这样,我们可以写个father类:classfather{charsecondname[10];}father类有姓(secondname)。父亲是爸爸,那我们是什么那?想想..儿子或者是女儿。我们可以这样写:classson:publicfather{charsex[10];}再复制粘贴一下:classdaughter:publicfather{charsex[10];}既然son和daughter都是来自father
2、的,那他们就应该有相同的基因,类的数据成员就好比是类的基因,所以son和daughter自然而然的继承了father的secondname属性。相对于father类,son和daughter是派生来的,可以叫做子类(派生类);father是父亲,所以叫做父类(基类)。classfather{charsecondname[10];father(charsn[]){strcpy(secondname,sn);}}classson:publicfather{charsex[10];son(charsn[],charmysex[]):father(sn){strcp
3、y(sex,mysex);}}classdaughter:publicfather{charsex[10];daughter:(charsn[],charmysex[]):father(sn){strcpy(sex,mysex);}}考试用书看见子类的构造函数怎么写的了吗?(拷贝构造函数你自己写吧,我累死了)同理,你还可以写出孙子类,嘻嘻..还有个问题,我们的mother哪?classmother{charfirstname[10];mother(charfn[]){strcpy(firstname,tn);}}现在问题有点复杂:classson:publi
4、cfather,publicmother{charsex[10];son(charsn[],charfn[],charmysex[]):father(sn),mother(fn){strcpy(sex,mysex);}}classdaughter:publicfather,publicmother{charsex[10];daughter:(charsn[],charfn[],charmysex[]):father(sn),mother(fn){strcpy(sex,mysex);}}写到这,有个问题:public,private和protected。我不想
5、说,因为写起来比较麻烦,而且一般我们都用public继承(private也行,反正我不用)。不过我要提醒大家的就是protected,想想在类里,protected对成员的限定是怎样的?继承过来的类原本的protected成员又是怎样的(protected?还是private)?好好想想,不会就看看书。等考C++备考之如何学习C++与面向对象:组合让我们复习一下person类:classperson{private:charbirthday[20];charsex[10];charname[20];public:person(){}person(person
6、&p){birthday=p.birthday;strcpy(sex,p.sex);}person(charb[],chars[]){birthday=b;sex=s;}voidset_name(charn[]){strcpy(name,n);//strcpy,没忘吧?复制char类型要用这个,不要写成"name=n;"!}char*get_name(){return*name;}voidspeak(){cout《"我在牙牙学语!"《endl;}voidspeak(chara[]){cout《"我在说:"《a《endl;}};这个类很别扭:charbirth
7、day[20];生日是时间,不是字符,我们可以写个时间类:classtime{intyear,month,day;time(inty,intm,intd){year=y;month=m;day=d;}}但是有什么用那?我也在想,后来,我这样声明personal类的成员:classperson{private:timebirthday;charsex[10];charname[20];public:..}这就是传说中的组合!我在教材上找了半天,竟然没找到,还说教材好,好个屁!连组合都没有!废话不说了,这里面的的time类的birthday就被称为内嵌对象!构造
8、函数要这样写:person(timeb,chars[