C++课后习题作业
2015-05-18 22:22
387 查看
1: #include <iostream> using namespace std; class Student {public: void get_value() {cin>>num>>name>>sex;} void display( ) {cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl;} private : int num; char name[10]; char sex; }; class Student1: public Student {public: void get_value_1() {get_value(); cin>>age>>addr;} void display_1() { cout<<"age: "<<age<<endl; //引用派生类的私有成员,正确。 cout<<"address: "<<addr<<endl;} //引用派生类的私有成员,正确。 private: int age; char addr[30]; }; int main() {Student1 stud1; stud1.get_value_1(); stud1.display(); stud1.display_1(); return 0; } 2: #include <iostream> using namespace std; class Student {public: void get_value() {cin>>num>>name>>sex;} void display( ) {cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl;} private : int num; char name[10]; char sex; }; class Student1: private Student {public: void get_value_1() {get_value(); cin>>age>>addr;} void display_1() {display(); cout<<"age: "<<age<<endl; //引用派生类的私有成员,正确。 cout<<"address: "<<addr<<endl;} //引用派生类的私有成员,正确。 private: int age; char addr[30]; }; int main() {Student1 stud1; stud1.get_value_1(); stud1.display_1(); return 0; } 3: #include <iostream> using namespace std; class Student //声明基类 {public: //基类公用成员 void get_value(); void display( ); protected : //基类保护成员 int num; char name[10]; char sex; }; void Student::get_value() {cin>>num>>name>>sex;} void Student::display( ) {cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl; } class Student1: protected Student //声明一个保护派生类 {public: void get_value_1(); void display1( ); private: int age; char addr[30]; }; void Student1::get_value_1() {get_value(); cin>>age>>addr; } void Student1::display1( ) {cout<<"num: "<<num<<endl; //引用基类的保护成员 cout<<"name: "<<name<<endl; //引用基类的保护成员 cout<<"sex: "<<sex<<endl; //引用基类的保护成员 cout<<"age: "<<age<<endl; //引用派生类的私有成员 cout<<"address: "<<addr<<endl; //引用派生类的私有成员 } int main( ) {Student1 stud1; //stud1是派生类student1类的对象 stud1.get_value_1(); //调用派生类对象stud1的公用成员函数 stud1.display1( ); //调用派生类对象stud1的公用成员函数 return 0; } 4: 解法一 #include <iostream> using namespace std; class Student//声明基类 {public: //基类公用成员 void get_value(); void display( ); protected : //基类保护成员 int num; char name[10]; char sex; }; void Student::get_value() {cin>>num>>name>>sex;} void Student::display( ) {cout<<"num: "<<num<<endl; cout<<"name: "<<name<<endl; cout<<"sex: "<<sex<<endl; } class Student1: public Student //声明一个公用派生类 {public: void get_value_1(); void display1( ); private: int age; char addr[30]; }; void Student1::get_value_1() {get_value(); cin>>age>>addr; } void Student1::display1( ) {cout<<"num: "<<num<<endl; //引用基类的保护成员,合法 cout<<"name: "<<name<<endl; //引用基类的保护成员,合法 cout<<"sex: "<<sex<<endl; //引用基类的保护成员,合法 cout<<"age: "<<age<<endl; //引用派生类的私有成员,合法 cout<<"address: "<<addr<<endl; //引用派生类的私有成员,合法 } int main( ) {Student1 stud1; //stud1是派生类student1类的对象 stud1.get_value_1(); //调用派生类对象stud1的公用成员函数get_value_1 stud1.display1( ); //调用派生类对象stud1的公用成员函数display1 return 0; } 解法二 #include <iostream> using namespace std; class Student //声明基类 {public: //基类公用成员 void get_value(); void display( ); protected : //基类保护成员 int num; char name[10]; char sex; }; void Student::get_value() {cin>>num>>name>>sex;} void Student::display( ) {cout<<"num: "<<num<<endl; cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl; } class Student1: protected Student //声明一个公用派生类 {public: void get_value_1(); void display1( ); private: int age; char addr[30]; }; void Student1::get_value_1() {cin>>age>>addr;} void Student1::display1( ) {cout<<"age:"<<age<<endl; cout<<"address:"<<addr<<endl; } int main( ) {Student1 stud1; //stud1是派生类student1类的对象 stud1.get_value(); stud1.get_value_1(); stud1.display( ); stud1.display1(); //合法。display1是派生类中的公用成员函数 return 0; } 5: class A //A为基类 {public: void f1( ); int i; protected: void f2(); int j; private: int k; }; class B: public A //B为A的公用派生类 {public: void f3( ); protected: int m; private: int n; }; class C: public B //C为B的公用派生类 {public: void f4(); private: int p; }; int main() {A a1; //a1是基类A的对象 B b1; //b1是派生类B的对象 C//c1是派生类C的对象 return 0; } 6: #include <iostream> using namespace std; class A {public: void f1( ); protected: void f2(); private: int i; }; class B: public A {public: void f3( ); int k; private: int m; }; class C: protected B {public: void f4(); protected: int n; private: int p; }; class D: private C {public: void f5(); protected: int q; private: int r; }; int main() {A a1; B b1; C c1; D d1; return 0; } 7: #include <iostream> using namespace std; class A { public: A(){a=0;b=0;} A(int i){a=i;b=0;} A(int i,int j){a=i;b=j;} void display(){cout<<"a="<<a<<" b="<<b;} private: int a; int b; }; class B : public A { public: B(){c=0;} B(int i):A(i){c=0;} B(int i,int j):A(i,j){c=0;} B(int i,int j,int k):A(i,j){c=k;} void display1() {display(); cout<<" c="<<c<<endl; } private: int c; }; int main() { B b1; B b2(1); B b3(1,3); B b4(1,3,5); b1.display1(); b2.display1(); b3.display1(); b4.display1(); return 0; } 8: #include <iostream> using namespace std; class A { public: A(){cout<<"constructing A "<<endl;} ~A(){cout<<"destructing A "<<endl;} }; class B : public A { public: B(){cout<<"constructing B "<<endl;} ~B(){cout<<"destructing B "<<endl;} }; class C : public B { public: C(){cout<<"constructing C "<<endl;} ~C(){cout<<"destructing C "<<endl;} }; int main() { C c1; return 0; } 9: #include<string> #include <iostream> using namespace std; class Teacher {public: Teacher(string nam,int a,char s,string tit,string ad,string t); void display(); protected: string name; int age; char sex; string title; string addr; string tel; }; Teacher::Teacher(string nam,int a,char s,string tit,string ad,string t): name(nam),age(a),sex(s),title(tit),addr(ad),tel(t){ } void Teacher::display() {cout<<"name:"<<name<<endl; cout<<"age"<<age<<endl; cout<<"sex:"<<sex<<endl; cout<<"title:"<<title<<endl; cout<<"address:"<<addr<<endl; cout<<"tel:"<<tel<<endl; } class Cadre {public: Cadre(string nam,int a,char s,string p,string ad,string t); void display(); protected: string name; int age; char sex; string post; string addr; string tel; }; Cadre::Cadre(string nam,int a,char s,string p,string ad,string t): name(nam),age(a),sex(s),post(p),addr(ad),tel(t){} void Cadre::display() {cout<<"name:"<<name<<endl; cout<<"age:"<<age<<endl; cout<<"sex:"<<sex<<endl; cout<<"post:"<<post<<endl; cout<<"address:"<<addr<<endl; cout<<"tel:"<<tel<<endl; } class Teacher_Cadre:public Teacher,public Cadre {public: Teacher_Cadre(string nam,int a,char s,string tit,string p,string ad,string t,float w); void show( ); private: float wage; }; Teacher_Cadre::Teacher_Cadre(string nam,int a,char s,string t,string p,string ad,string tel,float w): Teacher(nam,a,s,t,ad,tel),Cadre(nam,a,s,p,ad,tel),wage(w) {} void Teacher_Cadre::show( ) {Teacher::display(); cout<<"post:"<<Cadre::post<<endl; cout<<"wages:"<<wage<<endl; } int main( ) {Teacher_Cadre te_ca("Wang-li",50,'f',"prof.","president","135 Beijing Road,Shanghai","(021)61234567",1534.5); te_ca.show( ); return 0; } 10: #include <iostream> #include <cstring> using namespace std; class Teacher //教师类 {public: Teacher(int,char [],char); //声明构造函数 void display(); a7ef //声明输出函数 private: int num; char name[20]; char sex; }; Teacher::Teacher(int n,char nam[],char s) //定义构造函数 {num=n; strcpy(name,nam); sex=s; } void Teacher::display() //定义输出函数 {cout<<"num:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl; } class BirthDate //生日类 {public: BirthDate(int,int,int); //声明构造函数 void display(); //声明输出函数 void change(int,int,int); //声明修改函数 private: int year; int month; int day; }; BirthDate::BirthDate(int y,int m,int d) //定义构造函数 {year=y; month=m; day=d; } void BirthDate::display() //定义输出函数 {cout<<"birthday:"<<month<<"/"<<day<<"/"<<year<<endl;} void BirthDate::change(int y,int m,int d) //定义修改函数 {year=y; month=m; day=d; } class Professor:public Teacher //教授类 {public: Professor(int,char [],char,int,int,int,float); //声明构造函数 void display(); //声明输出函数 void change(int,int,int); //声明修改函数 private: float area; BirthDate birthday; //定义BirthDate类的对象作为数据成员 }; Professor::Professor(int n,char nam[20],char s,int y,int m,int d,float a): Teacher(n,nam,s),birthday(y,m,d),area(a){ } //定义构造函数 void Professor::display() //定义输出函数 {Teacher::display(); birthday.display(); cout<<"area:"<<area<<endl; } void Professor::change(int y,int m,int d) //定义修改函数 {birthday.change(y,m,d); } int main() {Professor prof1(3012,"Zhang",'f',1949,10,1,125.4); //定义Professor对象prof1 cout<<endl<<"original data:"<<endl; prof1.display(); //调用prof1对象的display函数 cout<<endl<<"new data:"<<endl; prof1.change(1950,6,1); //调用prof1对象的change函数 prof1.display(); //调用prof1对象的display函数 return 0; }
<img src="https://img-blog.csdn.net/20150518222245161?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGlwaTA5MDgwN2xpbGk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /><img src="https://img-blog.csdn.net/20150518222244705?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGlwaTA5MDgwN2xpbGk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150518222322005?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGlwaTA5MDgwN2xpbGk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150518222444392?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGlwaTA5MDgwN2xpbGk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150518222432922?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGlwaTA5MDgwN2xpbGk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150518222546371?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGlwaTA5MDgwN2xpbGk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150518222518396?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcGlwaTA5MDgwN2xpbGk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
相关文章推荐
- C++课后习题作业
- C++ 第四章课后习题作业
- C++课后习题作业
- C++primer第5版课后练习习题答案9.28
- 操作系统课后习题答案(作业题)
- Programming Abstraction in C++习题作业集
- C++程序设计课后习题及解答(第七章)
- Homework 1165 - C++作业第十章(主讲老师徐红云) Problem B: C++第十章习题2
- 谭浩强 c++程序设计第一章课后习题 第7题
- JAVA作业和课后习题解答1
- C++课后作业3
- C++primer第5版课后练习习题答案9.26
- 软件工程 习题二 课后作业
- 谭浩强 c++程序设计第一章课后习题 第10题
- 【RFID第二次作业】课后习题第1题
- 機器學習基石(Machine Learning Foundations) 机器学习基石 作业三 课后习题解答
- Homework 1165 - C++作业第十章(主讲老师徐红云) Problem A: C++第十章习题1
- C++程序设计(第2版)课后习题答案--第11章
- C++primer第5版课后练习习题答案9.51
- 機器學習基石(Machine Learning Foundations) 机器学习基石 作业四 课后习题解答