如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第七章类与对象23456789101112131415//Dog类较完整的定义classDog{private:charname[20];intage;public:voidset(char*n,inta);voiddisplay();voidspeak();};voidDog::set(char*n,inta){strcpy(name,n);age=a;}voidDog::display(){cout<<name<<'\t'<<age<<endl;}voidDog::speak(){cout<<"Arf!Arf!"<<endl;}//当成员函数比较简单时,可在类定义中直接给出函数体classDog{private:charname[20];intage;public:voidset(char*n,inta){strcpy(name,n);age=a;}voiddisplay(){cout<<name<<'\t'<<age<<endl;}voidspeak(){cout<<"Arf!Arf!"<<endl;}};181920212223242526272829303132333435//例7-3:派生类的定义及使用#include<iostream>#include<cstring>usingnamespacestd;classPerson//人员类定义{charName[10];//姓名intAge;//年龄public:voidSet(char*name,intage)//设置数据成员{strcpy(Name,name);Age=age;}voidDisplay(){cout<<Name<<"\t"<<Age<<"\t"<<endl;}};classStudent:publicPerson//学生类定义(公有继承){intNumber;//学号charClassName[10];//班级public:voidSetStu(char*classname,intnumber,char*name,intage){strcpy(ClassName,classname);Number=number;Set(name,age);//派生类成员函数直接使用基类的公有成员}voidDisplayStu(){cout<<Number<<'\t'<<ClassName<<'\t';Display();//派生类成员函数直接使用基类的公有成员}};intmain(){Studentstu1;stu1.SetStu("计算机21",95071007,"张三",19);stu1.Display();//派生类对象直接使用基类的公有成员stu1.DisplayStu();return0;}373839//例7-4:派生类构造函数和析构函数#include<iostream>#include<cstring>usingnamespacestd;classPerson//人员类定义{charName[10];intAge;public:Person(char*name,intage)//构造函数{strcpy(Name,name);Age=age;cout<<"Person类的构造函数被调用"<<endl;}~Person()//析构函数{cout<<"Person类的析构函数被调用"<<endl;}voidDisplay(){cout<<Name<<"\t"<<Age<<"\t"<<endl;}};classStudent:publicPerson//学生类定义(公有继承){intNumber;charClassName[10];public:Student(char*classname,intnumber,char*name,intage):Person(name,age){strcpy(ClassName,classname);Number=number;cout<<"Student类的构造函数被调用"<<endl;}~Student(){cout<<"Student类的析构函数被调用"<<endl;}