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();                          //声明输出函数

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;

}

c++面向对象程序设计 谭浩强 第五章答案的更多相关文章

  1. c++面向对象程序设计 谭浩强 第三章答案

    2: #include <iostream> using namespace std; class Date {public: Date(int,int,int); Date(int,in ...

  2. c++面向对象程序设计 谭浩强 第一章答案

    c++面向对象程序设计 谭浩强 答案 第一章 目录: c++面向对象程序设计 谭浩强 答案 第一章 c++面向对象程序设计 谭浩强 答案 第二章 c++面向对象程序设计 谭浩强 答案 第三章 c++面 ...

  3. c++面向对象程序设计 谭浩强 第二章答案

    类体内定义成员函数 #include <iostream> using namespace std; class Time { public: void set_time(); void ...

  4. c++面向对象程序设计 课后题 答案 谭浩强 第四章

    c++面向对象程序设计课后题答案 谭浩强 第四章 1: #include <iostream> using namespace std; class Complex {public: Co ...

  5. C语言程序设计·谭浩强(第四版)第二章课后习题的答案,算法——程序的灵魂

    C语言程序小练习 1.用C语言设计程序算出1-1/2+1/3-14+1/5...+1/99-1/100的值 #include<stdio.h> int main() { ; double ...

  6. 关于指针的笔记【1】【C语言程序设计-谭浩强】

    指针是什么? 一个 变量的地址称为该变量的"指针"[将地址形象化的称为“指针”].(指针是什么百度百科) 注意区分储存单元的地址和内容这两个概念的区别. 直接访问:直接按变量名进行 ...

  7. C程序设计(谭浩强)第五版课后题答案 第一章

    大家好,这篇文章分享了C程序设计(谭浩强)第五版课后题答案,所有程序已经测试能够正常运行,如果小伙伴发现有错误的的地方,欢迎留言告诉我,我会及时改正!感谢大家的观看!!! 1.什么是程序?什么是程序设 ...

  8. 挂羊头卖狗肉蓄意欺骗读者——谭浩强《C程序设计(第四版)》中所谓的“按照C99”(二)

    挂羊头卖狗肉蓄意欺骗读者——谭浩强<C程序设计(第四版)>中所谓的“按照C99”(二) 在<谭C>p4:“本书的叙述以C99标准为依据”,下面从C89到C99的主要变化方面来看 ...

  9. 再论谭浩强《C语言程序设计》

    一些同学学不好C语言,把罪责归于“因为教材是谭浩强写的”实在是很滑稽. 谭浩强老先生 1934 年生,现在已经 80 岁了.他 1958 年从清华大学自动控制系毕业,那年 24 岁.要知道 C 语言那 ...

随机推荐

  1. 文档控件NTKO OFFICE 详细使用说明之预览Excel文件(查看、编辑、保存回服务器)

    1.在线预览Excel文件 (1) 运行环境 ① 浏览器:支持IE7-IE11(平台版本还支持Chrome和Firefox) ② IE工具栏-Internet 选项:将www.ntko.com加入到浏 ...

  2. 关于react-router-dom入门配置

    react-router-dom入门配置 配置 参考:github https://reacttraining.com/react-router/web/api/BrowserRouter 1. 导入 ...

  3. 第一天:java与mysql的连接工具类

    第一天:java与mysql的连接工具类 java最新版马上就要收费,这无疑是这门语言的衰败起始,毕竟在中国收费便难发展,例如c#,但是毕业设计已经选好用java来写一个动态网站, 这已经是一个事实, ...

  4. 【转载】程序猿转型AI必须知道的几件事!

    历史上AI火过两次,但是最终都已销声匿迹作为结束.这次AI大火的原因:AlphaGo 4比1战胜李世石,相对于一些外行人的恐慌和恐惧,其实很多业内人员在这场世纪之战结束后,都为人类点上了一个大大的赞. ...

  5. TRS矩阵分解

    transform = TRS T就是transform的最后一列.关于R和S的分解,PBRT给了一个公式:M_(i+1) = (M_i + ((M_i)^T)^(-1))*0.5,直到M收敛.M初始 ...

  6. 把pcl的VTK显示融合到MFC(代码找原作者)

    转自PCL中国,原文链接:http://www.pclcn.org/bbs/forum.php?mod=viewthread&tid=223&extra=page%3D1 本人做了少量 ...

  7. 搜索关键词和类目url简短化

    电商网站中有很多搜索关键词或者类目的url往往是一大串的url:有个需求是将长的url如: 域名+/products.html?q=大侠&showtype=img&sort=isTra ...

  8. CSS字体代码

    宋体 SimSun 黑体 SimHei 微软雅黑 Microsoft YaHei 微软正黑体 Microsoft JhengHei 新宋体 NSimSun 新细明体 PMingLiU 细明体 Ming ...

  9. RabbitMQ学习之集群消息可靠性测试

    之前介绍过关于消息发送和接收的可靠性:RabbitMQ学习之消息可靠性及特性 下面主要介绍一下集群环境下,rabbitmq实例宕机的情况下,消息的可靠性.验证rabbitmq版本[3.4.1]. 集群 ...

  10. day06-08初识面向对象

    一.面向过程 VS 面向对象 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西.优点是:极大的降低了写程序的 ...