尹其畅 继承和派生程序.docx
- 文档编号:25774537
- 上传时间:2023-06-13
- 格式:DOCX
- 页数:54
- 大小:19.71KB
尹其畅 继承和派生程序.docx
《尹其畅 继承和派生程序.docx》由会员分享,可在线阅读,更多相关《尹其畅 继承和派生程序.docx(54页珍藏版)》请在冰豆网上搜索。
尹其畅继承和派生程序
1公有继承
第一种方法:
#include"iostream"
usingnamespacestd;
#include"string"
classstudent
{
public:
voidget_value()
{
cin>>num>>name>>sex;
}
voiddisplay()
{
cout<<"num:
"< cout<<"name: "< cout<<"sex: "< } private: intnum; stringname; charsex; }; classstudent1: publicstudent { public: voidget_value_1() { cin>>age>>addr; } voiddisplay_1() { cout<<"age: "< cout<<"address: "< } private: intage; stringaddr; }; intmain() { student1stud; stud.get_value(); stud.get_value_1(); stud.display(); stud.display_1(); return0; } 第二种方法: #include"iostream" usingnamespacestd; #include"string" classstudent { public: voidget_value() { cin>>num>>name>>sex; } voiddisplay() { cout<<"num: "< cout<<"name: "< cout<<"sex: "< } private: intnum; stringname; charsex; }; classstudent1: publicstudent { public: voidget_value_1() { get_value();//调用公有继承类的共有成员函数,输入三个数据呢 cin>>age>>addr; } voiddisplay_1() { display();//调用公有继承类的共有成员函数,输出三个数据呢 cout<<"age: "< cout<<"address: "< } private: intage; stringaddr; }; intmain() { student1stud; //stud.get_value(); stud.get_value_1(); //stud.display(); stud.display_1(); return0; } 私有继承 第一种方法: #include"iostream" usingnamespacestd; #include"string" classstudent { public: voidget_value() { cin>>num>>name>>sex; } voiddisplay() { cout<<"num: "< cout<<"name: "< cout<<"sex: "< } private: intnum; stringname; charsex; }; classstudent1: privatestudent { public: voidget_value_1() { get_value(); cin>>age>>addr; } voiddisplay_1() { display(); cout<<"age: "< cout<<"address: "< } private: intage; stringaddr; }; intmain() { student1stud1; stud1.get_value_1(); stud1.display_1(); return0; } 保护继承 #include"iostream" #include"string" usingnamespacestd; classstudent { public: protected: intnum; stringname; charsex; }; classstudent1: protectedstudent { public: voidget_value_1(); voiddisplay_1(); private: intage; stringaddr; }; voidstudent1: : get_value_1() { cin>>num>>name>>sex; cin>>age>>addr; } voidstudent1: : display_1() { cout<<"num: "< cout<<"name: "< cout<<"sex: "< cout<<"age: "< cout<<"address: "< } intmain() { student1stud1; stud1.get_value_1(); stud1.display_1(); return0; } 派生构造函数和析构函数 #include"iostream" usingnamespacestd; #include"string" classstudent { public: student(intn,stringnam,chars) { num=n; name=nam; sex=s; } ~student() { cout<<"调用基类的析构函数: "< } protected: intnum; stringname; charsex; }; classstudent1: publicstudent { public: student1(intn,stringnam,chars,inta,stringad): student(n,nam,s) { age=a; addr=ad; } voidshow() { cout<<"num: "< cout<<"name: "< cout<<"sex: "< cout<<"age: "< cout<<"address: "< } ~student1() { cout<<"调用派生类的析构函数: "< } private: intage; stringaddr; }; intmain() { student1stud1(10010,"wang-li",'f',19,"115beijingroad,shanghai"); student1stud2(10011,"zhang-fang",'m',21,"213beijingroad,shanghai"); stud1.show(); stud2.show(); return0; } #include"iostream" usingnamespacestd; #include"string" classstudent { public: student(intn,stringnam,chars) { cout<<"调用基类的构造函数: "< num=n; name=nam; sex=s; } ~student() { cout<<"调用基类的析构函数: "< } protected: intnum; stringname; charsex; }; classstudent1: publicstudent { public: student1(intn,stringnam,chars,inta,stringad): student(n,nam,s) { cout<<"调用派生类的构造函数: "< age=a; addr=ad; } voidshow() { cout<<"num: "< cout<<"name: "< cout<<"sex: "< cout<<"age: "< cout<<"address: "< } ~student1() { cout<<"调用派生类的析构函数: "< } private: intage; stringaddr; }; intmain() { student1stud1(10010,"wang-li",'g',19,"115beijingroad,shanghai"); student1stud2(10011,"zhang-fang",'m',21,"213beijingroad,shanghai"); stud1.show(); stud2.show(); return0; } #include"iostream" usingnamespacestd; #include"string" classstudent { public: student(intn,stringnam,chars) { cout<<"调用基类的构造函数: "< num=n; name=nam; sex=s; } ~student() { cout<<"调用基类的析构函数: "< } protected: intnum; stringname; charsex; }; classstudent1: publicstudent { public: student1(intn,stringnam,chars,inta,stringad): student(n,nam,s) { cout<<"调用派生类的构造函数: "< age=a; addr=ad; } voidshow() { cout<<"num: "< cout<<"name: "< cout<<"sex: "< cout<<"age: "< cout<<"address: "< } ~student1() { cout<<"调用派生类的析构函数: "< } private: intage; stringaddr; }; intmain() { cout<<"运行完毕,定义对象: "< student1stud1(10010,"wang-li",'g',19,"115beijingroad,shanghai");//定义对象stud1的同时调用构造函数 student1stud2(10011,"zhang-fang",'m',21,"213beijingroad,shanghai");//定义对象stud1的同时调用构造函数 stud1.show(); stud2.show(); cout<<"显示完毕,开始调用析构函数: "< return0; } #include"iostream" usingnamespacestd; #include"string" classstudent { public: student(intn,stringnam,chars) { cout<<"调用基类的构造函数: "< num=n; name=nam; sex=s; } ~student() { cout<<"调用基类的析构函数: "< } protected: intnum; stringname; charsex; }; classstudent1: publicstudent { public: student1(intn,stringnam,chars,inta,stringad);//类中申明 voidshow() { cout<<"num: "< cout<<"name: "< cout<<"sex: "< cout<<"age: "< cout<<"address: "< } ~student1() { cout<<"调用派生类的析构函数: "< } private: intage; stringaddr; }; student1: : student1(intn,stringnam,chars,inta,stringad): student(n,nam,s)//类外定义 { cout<<"调用派生类的构造函数: "< age=a; addr=ad; } intmain() { cout<<"运行完毕,定义对象: "< student1stud1(10010,"wang-li",'g',19,"115beijingroad,shanghai");//定义对象stud1的同时调用构造函数 student1stud2(10011,"zhang-fang",'m',21,"213beijingroad,shanghai");//定义对象stud1的同时调用构造函数 stud1.show(); stud2.show(); cout<<"显示完毕,开始调用析构函数: "< return0; } 有子对象的派生类的构造函数 #include"iostream" usingnamespacestd; #include"string" classstudent { public: student(intn,stringnam) { cout<<"调用基类的构造函数: "< num=n; name=nam; } voiddisplay() { cout<<"num: "< "< } ~student() { cout<<"调用基类的析构函数: "< } protected: intnum; stringname; }; classstudent1: publicstudent { public: //studentmonitor; student1(intn,stringnam,intnl,stringnaml,inta,stringad); voidshow() { cout<<"Thisstudentis: "< display(); cout<<"age: "< cout<<"address: "< } voidshow_monitor() { cout< "< monitor.display(); } ~student1() { cout<<"调用派生类的析构函数: "< } private: //studentmonitor; intage; stringaddr; }; student1: : student1(intn,stringnam,intnl,stringnaml,inta,stringad) : student(n,nam),monitor(nl,naml) { cout<<"调用派生类的构造函数: "< age=a; addr=ad; } intmain() { cout<<"运行完毕,定义对象: "< student1stud1(10010,"wang_li",10001,"li_sun",19,"115beijingroad,shanghai");//定义对象stud1的同时调用构造函数 //student1stud1(10010,"wang-li",'g',19,"115beijingroad,shanghai");//定义对象stud1的同时调用构造函数 //student1stud2(10011,"zhang-fang",'m',21,"213beijingroad,shanghai");//定义对象stud1的同时调用构造函数 stud1.show(); stud1.show_monitor(); //stud2.show(); cout<<"显示完毕,开始调用析构函数: "< return0; } #include"iostream" usingnamespacestd; #include"string" classstudent { public: student(intn,stringnam) { cout<<"调用基类的构造函数: "< num=n; name=nam; } voiddisplay() { cout<<"num: "< "< } ~student() { cout<<"调用基类的析构函数: "< } protected: intnum; stringname; }; classstudent1: publicstudent { public: student1(intn,stringnam,inta,stringad); voidshow() { cout<<"Thisstudentis: "< display(); cout<<"age: "< cout<<"address: "< } ~student1() { cout<<"调用派生类的析构函数: "< } private: intage; stringaddr; }; student1: : student1(intn,stringnam,inta,stringad): student(nnam) { cout<<"调用派生类的构造函数: "< age=a; addr=ad; } intmain() { cout<<"运行完毕,定义对象: "< student1stud1(10010,"wang_li",19,"115beijingroad,shanghai");//定义对象stud1的同时调用构造函数 stud1.show(); cout<<"显示完毕,开始调用析构函数: "< return0; } 多重派生时的构造函数 #include"iostream" usingnamespacestd; #include"string" classstudent { public: student(intn,stringnam) { cout<<"调用基类的构造函数: "< num=n; name=nam; } voiddisplay() { cout<<"num: "< cout<<"name: "< } ~student() { cout<<"调用基类的析构函数: "< } protected: intnum; stringname; }; classstudent1: publicstudent { public: student1(intn,charnam[10],inta): student(n,nam) { cout<<"调用studnet1类的构造函数: "< age=a; } voidshow() { display(); cout<<"age: "< } ~student1() { cout<<"调用派生类student1的析构函数: "< } private: intage; }; classstudent2: publicstudent1 { public: student2(intn,charnam[],inta,ints): student1(n,nam,a) {cout<<"调用student2类的构造函数: "< score=s;} voidshow_all() { show(); cout<<"score: "< } ~student2() { cout<<"调用派生类student2的析构函数: "< } private: intscore; }; intmain
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 尹其畅 继承和派生程序 继承 派生 程序