1、- 已启动生成: 项目: cpp, 配置: Debug Win32 -生成启动时间为 2013-2-18 11:10:35。InitializeBuildStatus: 正在创建“Debugcpp.unsuccessfulbuild”,因为已指定“AlwaysCreate”。ClCompile: main.cppf:projectscppcppmain.cpp(13): error C2248: “Animal:age”: 无法访问 private 成员(在“Animal”类中声明) f:projectscppcppmain.cpp(8) : 参见“Animal:age”的声明projects
2、cppcppmain.cpp(5) : 参见“Animal”的声明projectscppcppmain.cpp(14):生成失败。已用时间 00:00:03.28= 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 =把age改为公有变量后重新编译就可以了。程序名:lab7_1.cpp。 程序及运行结果:/lab7_1.cpp#include using namespace std;class Animalprivate: /private时出错/public:/public和protected正确 int age;class dog:public Animalpublic: v
3、oid SetAge(int n) age=n; int GetAge() return age;void main() dog d; d.SetAge(3); coutAge=d.GetAge()endl;用public时的结果:2.(编程)声明一个基类BaseClass,构造其派生类DerivedClass。在构造函数和析构函数中用cout输出提示信息,观察构造函数和析构函数的执行情况。lab7_2.cpp。参考的运行结果:/lab7_2.cppclass BaseClass BaseClass() cout构造了一个BaseClass类的对象. BaseClass() cout析构了一个
4、BaseClass类的对象. int Number;class DeriveClass:public BaseClass DeriveClass() cout构造了一个DeriveClass类的对象. DeriveClass() cout析构了一个DeriveClass类的对象. DeriveClass a;3.(操作)用调试功能跟踪程序lab7_2的执行过程。观察基类和派生类的构造函数和析构函数的执行情况。4.(编程)声明一个车(vehicle)虚基类。由此派生出自行车(bicycle)类、汽车(motorcar)类,注意把vehicle派生为虚基类。再从bicycle和motorcar派生
5、出摩托车(motorcycle)类,在main()函数中测试这个类。lab7_3.cpp。/lab7_3.cppclass vehicle/车类,作为基类protected: int MaxSpeed,Weight;/最大速度,重量 void Run() cout车vehicle类开始运行! void Stop() cout车vehicle类停止运行!class bicycle:virtual public vehicle/自行车类:公有继承虚基类vehicle int Height;/高度class motorcar:virtual public vehicle/汽车类: int SeatN
6、um;/座位数class motorcycle :public bicycle,public motorcar/摩托车类:公有继承自行车类和汽车类 void Setdata(int ms,int wt,int ht,int sn) MaxSpeed=ms; Weight=wt; Height=ht; SeatNum=sn; ; void Show() cout最大速度:MaxSpeed 重量:Weight 高度:Height 座位数:SeatNumvoid main()int类型占用字节数: sizeof(int) vehicle占用字节数:sizeof(vehicle)bicycle占用字节
7、数:sizeof(bicycle)motorcar占用字节数:sizeof(motorcar)motorcycle占用字节数:sizeof(motorcycle)class Date int yy,mm,dd; Date() Date(Date &d) : yy(d.yy),mm(d.mm),dd(d.dd)/增添 Date() int Getyy()const return yy; int Getmm()const return mm; int Getdd()const return dd; void Setyy(int y) yy=y; void Setmm(int m) mm=m; vo
8、id Setdd(int d) dd=d;class People char name11; /姓名,增添 char number7; /编号,改为数组 char sex3; /男或女,改为数组 Date birthday; /出生日期 char id16; /身份证号,改为数组 People() People(People &p); People() void Getname(char na) strcpy(na,name); void Getnumber(char nu) strcpy(nu,number); void Getsex(char se)strcpy(se,sex); int
9、Getbirthyy()const return birthday.Getyy(); int Getbirthmm()const return birthday.Getmm(); int Getbirthdd()const return birthday.Getdd(); void Getid(char d) strcpy(d,id); void Setname(char na) strcpy(name,na); void Setnumber(char nu) strcpy(number,nu); void Setsex(char se)strcpy(sex,se); void Setbirt
10、hyy(int y) birthday.Setyy(y); void Setbirthmm(int m) birthday.Setmm(m); void Setbirthdd(int d) birthday.Setdd(d); void Setid(char d) strcpy(id,d); void input(); void output();People:People(People &p)birthday(p.birthday) strcpy(name,p.name); strcpy(number,p.number); strcpy(sex,p.sex); strcpy(id,p.id)
11、;inline void People:input()姓名:; cinname;编号:number;性别(男/女):sex;出生日期(年 月 日): int y,m,d;ymd; Setbirthyy(y); Setbirthmm(m); Setbirthdd(d);身份证号:id;output()namen编号:number性别:sex出生日期:Getbirthyy()年 Getbirthmm()月Getbirthdd()日id(2) lab7_4.h:People类的派生类/lab7_4.h#include lab6_7.hclass student:virtual public Peop
12、le/学生类 char classNo7;/班号 student() student(student &st):People(st) strcpy(classNo,st.classNo); /使用类型兼容规则 student() void GetclassNo(char cNo) strcpy(cNo,classNo); void SetclassNo(char *c) strcpy(classNo,c); void input() People:input();班号:classNo; void output()output();classNoclass teacher:virtual public People/教师类 char principalship11;/职务 char department21;/部门 teacher()
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1