《C++面向对象程序设计答案》-第五章--谭浩强-清华大学出版社

《C++面向对象程序设计答案》-第五章--谭浩强-清华大学出版社
《C++面向对象程序设计答案》-第五章--谭浩强-清华大学出版社

1:

令狐采学#include

using namespace std;

class Student

{public:

voidget_value()

{cin>>num>>name>>sex;}

void display( )

{cout<<"num: "<

int num;

char name[10];

char sex;

};

class Student1: public Student

{public:

void get_value_1()

{get_value();

cin>>age>>addr;}

{ cout<<"age: "<

cout<<"address: "<

private:

int age;

charaddr[30];

};

int main()

{Student1 stud1;

stud1.get_value_1();

stud1.display();

stud1.display_1();

return 0;

}

2:

#include

using namespace std;

class Student

{public:

voidget_value()

{cin>>num>>name>>sex;}

{cout<<"num: "<

cout<<"name: "<

cout<<"sex: "<

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: "<

cout<<"address: "<

private:

int age;

charaddr[30];

};

int main()

{Student1 stud1;

stud1.get_value_1();

stud1.display_1();

return 0;

}

3:

#include

using namespace std;

class Student //声明基类{public: //基类公用成员voidget_value();

void display( );

protected : //基类保护成员int num;

char name[10];

char sex;

};

void Student::get_value()

{cin>>num>>name>>sex;}

void Student::display( )

{cout<<"num: "<

cout<<"name: "<

cout<<"sex: "<

}

class Student1: protected Student //声明一个保护派生类{public:

void get_value_1();

void display1( );

private:

int age;

charaddr[30];

};

void Student1::get_value_1()

{get_value();

cin>>age>>addr;

}

void Student1::display1( )

{cout<<"num: "<

cout<<"age: "<

int main( )

{Student1 stud1; //stud1是派生类student1类的对象

stud1.get_value_1(); //调用派生类对象stud1的公用成员函数

stud1.display1( ); //调用派生类对象stud1的公用成员函数

return 0;

}

4: 解法一

#include

using namespace std;

class Student //声明基类

{public: //基类公用成员

voidget_value();

void display( );

protected : //基类保护成员

int num;

char name[10];

char sex;

};

void Student::get_value()

{cin>>num>>name>>sex;}

void Student::display( )

{cout<<"num: "<

cout<<"name: "<

cout<<"sex: "<

}

class Student1: public Student //声明一个公用派生类{public:

void get_value_1();

void display1( );

private:

int age;

charaddr[30];

};

void Student1::get_value_1()

{get_value();

cin>>age>>addr;

}

void Student1::display1( )

{cout<<"num: "<

cout<<"name: "<

cout<<"sex: "<

cout<<"address: "<

}

int main( )

{Student1 stud1; //stud1是派生类student1类的对象

stud1.get_value_1(); //调用派生类对象stud1的公用成员函数get_value_1

stud1.display1( ); //调用派生类对象stud1的公用成员函数display1

return 0;

}

解法二

#include

using namespace std;

class Student //声明基类

{public: //基类公用成员

voidget_value();

void display( );

protected : //基类保护成员

int num;

char name[10];

};

void Student::get_value()

{cin>>num>>name>>sex;}

void Student::display( )

{cout<<"num: "<

cout<<"name:"<

cout<<"sex:"<

}

class Student1: protected Student //声明一个公用派生类{public:

void get_value_1();

void display1( );

private:

int age;

charaddr[30];

};

void Student1::get_value_1()

{cin>>age>>addr;}

void Student1::display1( )

{cout<<"age:"<

cout<<"address:"<

}

{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( );

inti;

protected:

void f2();

int j;

private:

int k;

};

class B: public A //B为A的公用派生类

{public:

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; //c1是派生类C的对象return 0;

}

6:

#include

using namespace std;

class A

{public:

protected:

void f2(); private:

inti;

};

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:

protected:

int q;

private:

int r;

};

int main()

{A a1;

B b1;

C c1;

D d1;

return 0;

}

7:

#include

using namespace std;

class A

{

public:

A(){a=0;b=0;}

A(inti){a=i;b=0;}

A(inti,int j){a=i;b=j;}

void display(){cout<<"a="<

class B : public A

{

public:

B(){cout<<"constructing B "<

class C : public B

{

public:

C(){cout<<"constructing C "<

~C(){cout<<"destructing C "<

};

int main()

{ C c1;

return 0;

}

9:

#include

#include

using namespace std;

class Teacher

{public:

Teacher(string nam,inta,chars,stringtit,stringad,string t); void display();

protected:

string name;

int age;

char sex;

string title;

stringaddr;

stringtel;

};

Teacher::Teacher(string nam,inta,chars,stringtit,stringad,string t): name(nam),age(a),sex(s),title(tit),addr(ad),tel(t){ }

void Teacher::display()

{cout<<"name:"<

cout<<"age"<

cout<<"sex:"<

cout<<"title:"<

cout<<"address:"<

cout<<"tel:"<

}

class Cadre

{public:

Cadre(string nam,inta,chars,stringp,stringad,string t);

void display();

protected:

string name;

int age;

char sex;

string post;

stringaddr;

stringtel;

};

Cadre::Cadre(string nam,inta,chars,stringp,stringad,string t): name(nam),age(a),sex(s),post(p),addr(ad),tel(t){}

void Cadre::display()

{cout<<"name:"<

cout<<"age:"<

cout<<"sex:"<

cout<<"post:"<

cout<<"address:"<

cout<<"tel:"<

}

classTeacher_Cadre:publicTeacher,public Cadre

{public:

Teacher_Cadre(string

nam,inta,chars,stringtit,stringp,stringad,stringt,float w); void show( );

private:

float wage;

};

Teacher_Cadre::Teacher_Cadre(string

nam,inta,chars,stringt,stringp,stringad,stringtel,float w):

Teacher(nam,a,s,t,ad,tel),Cadre(nam,a,s,p,ad,tel),wage(w) {} voidTeacher_Cadre::show( )

{Teacher::display();

cout<<"post:"<

cout<<"wages:"<

}

int main( )

{Teacher_Cadrete_ca("Wang-li",50,'f',"prof.","president","135 Beijing Road,Shanghai","(021)61234567",1534.5);

te_ca.show( );

return 0;

}

10:

#include

#include

using namespace std;

class Teacher //教师类

{public:

Teacher(int,char [],char); //声明构造函数

void display(); //声明输出函数private:

int num;

char name[20];

char sex;

};

Teacher::Teacher(intn,charnam[],char s) //定义构造函数

{num=n;

strcpy(name,nam);

sex=s;

}

void Teacher::display() //定义输出函数

{cout<<"num:"<

cout<<"name:"<

cout<<"sex:"<

}

class BirthDate //生日类

{public:

BirthDate(int,int,int); //声明构造函数

void display(); //声明输出函数

void change(int,int,int); //声明修改函数private:

int year;

int month;

int day;

};

BirthDate::BirthDate(inty,intm,int d) //定义构造函数 {year=y;

month=m;

day=d;

相关主题
相关文档
最新文档