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

上传人:b****5 文档编号:4475864 上传时间:2022-12-01 格式:DOCX 页数:15 大小:16.49KB
下载 相关 举报
《C++面向对象程序设计答案》第五章谭浩强清华大学出版社.docx_第1页
第1页 / 共15页
《C++面向对象程序设计答案》第五章谭浩强清华大学出版社.docx_第2页
第2页 / 共15页
《C++面向对象程序设计答案》第五章谭浩强清华大学出版社.docx_第3页
第3页 / 共15页
《C++面向对象程序设计答案》第五章谭浩强清华大学出版社.docx_第4页
第4页 / 共15页
《C++面向对象程序设计答案》第五章谭浩强清华大学出版社.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

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

《《C++面向对象程序设计答案》第五章谭浩强清华大学出版社.docx》由会员分享,可在线阅读,更多相关《《C++面向对象程序设计答案》第五章谭浩强清华大学出版社.docx(15页珍藏版)》请在冰豆网上搜索。

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

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

1:

#include

usingnamespacestd;

classStudent

{public:

voidget_value()

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

voiddisplay()

{cout<<"num:

"<

cout<<"name:

"<

cout<<"sex:

"<

private:

intnum;

charname[10];

charsex;

};

classStudent1:

publicStudent

{public:

voidget_value_1()

{get_value();cin>>age>>addr;}

voiddisplay_1()

{cout<<"age:

"<

cout<<"address:

"<

private:

intage;

charaddr[30];

};

intmain()

{Student1stud1;stud1.get_value_1();

stud1.display();

stud1.display_1();

return0;

}

2:

#include

usingnamespacestd;

classStudent

{public:

voidget_value()

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

voiddisplay()

{cout<<"num:

"<

"<

cout<<"sex:

"<

private:

intnum;

charname[10];

charsex;

};

classStudent1:

privateStudent

{public:

voidget_value_1(){get_value();

cin>>age>>addr;}

voiddisplay_1()

{display();

cout<<"age:

"<

cout<<"address:

"<

private:

intage;

charaddr[30];

};

intmain()

{Student1stud1;stud1.get_value_1();stud1.display_1();return0;

}

3:

#include

usingnamespacestd;

classStudent//声明基类

{public:

//基类公用成员

voidget_value();

voiddisplay();

protected:

//基类保护成员

intnum;

charname[10];

charsex;

};

voidStudent:

:

get_value()

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

voidStudent:

:

display()

{cout<<"num:

"<

"<

"<

}

classStudent1:

protectedStudent

{public:

voidget_value_1();

voiddisplay1();

private:

intage;

charaddr[30];

};

voidStudent1:

:

get_value_1(){get_value();

cin>>age>>addr;

}

voidStudent1:

:

display1()

{cout<<"num:

"<

"<

"<

"<

"<

}

intmain()

{Student1stud1;stud1.get_value_1();stud1.display1();

return0;

}

4:

解法一

//声明一个保护派生类

//引用基类的保护成员

//引用基类的保护成员//引用基类的保护成员//引用派生类的私有成员//引用派生类的私有成员

//stud1是派生类student1类的对象

//调用派生类对象stud1的公用成员函数//调用派生类对象stud1的公用成员函数

#include

usingnamespacestd;

classStudent//声明基类

{public:

//基类公用成员

voidget_value();

voiddisplay();

protected:

//基类保护成员

intnum;

 

charname[10];

charsex;

};

voidStudent:

:

get_value()

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

voidStudent:

:

display()

{cout<<"num:

"<

"<

"<

//声明一个公用派生类

}

classStudent1:

publicStudent

{public:

voidget_value_1();

voiddisplay1();

private:

intage;

charaddr[30];

};

voidStudent1:

:

get_value_1(){get_value();

cin>>age>>addr;

}

//引用基类的保护成员,合法

//引用基类的保护成员,合法//引用基类的保护成员,合法//引用派生类的私有成员,合法//引用派生类的私有成员,合法

voidStudent1:

:

display1()

{cout<<"num:

"<

"<

"<

"<

"<

}

intmain()

{Student1stud1;stud1.get_value_1();

get_value_1stud1.display1();return0;

}

解法二

#includeusingnamespacestd;

//stud1是派生类student1类的对象

//调用派生类对象stud1的公用成员函数

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

classStudent

{public:

voidget_value();

voiddisplay();

protected:

intnum;charname[10];charsex;

};

voidStudent:

:

get_value(){cin>>num>>name>>sex;}

voidStudent:

:

display(){cout<<"num:

"<

cout<<"name:

"<

"<

}

classStudent1:

protectedStudent{public:

voidget_value_1();voiddisplay1();

private:

intage;

charaddr[30];

};

voidStudent1:

:

get_value_1(){cin>>age>>addr;}

voidStudent1:

:

display1(){cout<<"age:

"<

cout<<"address:

"<

intmain()

{Student1stud1;stud1.get_value();stud1.get_value_1();stud1.display();stud1.display1();return0;

//声明基类

//基类公用成员

//基类保护成员

//声明一个公用派生类

//stud1是派生类student1类的对象

//合法。

display1是派生类中的公用成员函数

 

5:

classA{public:

voidf1();inti;

protected:

voidf2();intj;

private:

intk;

};

classB:

publicA{public:

voidf3();protected:

intm;

private:

intn;

};

//A为基类

//B为A的公用派生类

classC:

publicB{public:

voidf4();private:

intp;

};

//C为B的公用派生类

intmain()

{Aa1;

Bb1;

Cc1;

return0;

}

6:

#includeusingnamespacestd;classA

{public:

voidf1();protected:

voidf2();

private:

inti;

//a1是基类A的对象

//b1是派生类B的对象

//c1是派生类C的对象

 

};

classB:

publicA

{public:

voidf3();

intk;

private:

intm;

};

classC:

protectedB{public:

voidf4();

protected:

intn;

private:

intp;

};

classD:

privateC

{public:

voidf5();

protected:

intq;

private:

intr;

};

intmain()

{Aa1;

Bb1;

Cc1;

Dd1;

return0;

}

7:

#includeusingnamespacestd;classA

{

public:

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

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

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

voiddisplay(){cout<<"a="<

inta;

intb;

};

classB:

publicA

{

public:

B(){c=0;}

B(inti):

A(i){c=0;}

B(inti,intj):

A(i,j){c=0;}

B(inti,intj,intk):

A(i,j){c=k;}

voiddisplay1()

{display();

cout<<"c="<

}

private:

intc;

};

intmain()

{Bb1;

Bb2

(1);

Bb3(1,3);

Bb4(1,3,5);

b1.display1();

b2.display1();

b3.display1();

b4.display1();

return0;

}

8:

#include

usingnamespacestd;

classA

{

public:

A(){cout<<"constructingA"<

classB:

publicA

{

public:

B(){cout<<"constructingB"<

~B(){cout<<"destructingB"<

};

classC:

publicB

{

public:

C(){cout<<"constructingC"<

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

};

intmain()

{Cc1;

return0;

}

9:

#include

#include

usingnamespacestd;

classTeacher

{public:

Teacher(stringnam,inta,chars,stringtit,stringad,stringt);

voiddisplay();

protected:

stringname;

intage;

charsex;

stringtitle;

stringaddr;

stringtel;

};

Teacher:

:

Teacher(stringnam,inta,chars,stringtit,stringad,stringt):

name(nam),age(a),sex(s),title(tit),addr(ad),tel(t){}voidTeacher:

:

display()

{cout<<"name:

"<

"<

"<

"<

"<

}classCadre

{public:

Cadre(stringnam,inta,chars,stringp,stringad,stringt);

voiddisplay();

protected:

stringname;

intage;

charsex;

stringpost;

stringaddr;

stringtel;

};

Cadre:

:

Cadre(stringnam,inta,chars,stringp,stringad,stringt):

name(nam),age(a),sex(s),post(p),addr(ad),tel(t){}

voidCadre:

:

display(){cout<<"name:

"<

"<

"<

"<

"<

"<

}

classTeacher_Cadre:

publicTeacher,publicCadre

{public:

Teacher_Cadre(stringnam,inta,chars,stringtit,stringp,stringad,stringt,floatw);voidshow();

private:

floatwage;

};

Teacher_Cadre:

:

Teacher_Cadre(stringnam,inta,chars,stringt,stringp,stringad,stringtel,floatw):

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

voidTeacher_Cadre:

:

show()

{Teacher:

:

display();cout<<"post:

"<

:

post<

"<

intmain()

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

te_ca.show();

//教师类

//声明构造函数

//声明输出函数

//定义构造函数

//定义输出函数

//生日类

//声明构造函数

//声明输出函数

//声明修改函数

return0;

}

10:

#include

#include

usingnamespacestd;

classTeacher

{public:

Teacher(int,char[],char);voiddisplay();

private:

intnum;

charname[20];

charsex;

};

Teacher:

:

Teacher(intn,charnam[],chars){num=n;

strcpy(name,nam);

sex=s;

}

voidTeacher:

:

display()

{cout<<"num:

"<

cout<<"name:

"<

"<

}

classBirthDate

{public:

BirthDate(int,int,int);

voiddisplay();

voidchange(int,int,int);

private:

intyear;

intmonth;intday;

};

BirthDate:

:

BirthDate(inty,intm,intd)//定义构造函数

{year=y;

month=m;day=d;

voidBirthDate:

:

display()//定义输出函数

{cout<<"birthday:

"<

voidBirthDate:

:

change(inty,intm,intd)//定义修改函数

{year=y;

month=m;

day=d;

}

classProfessor:

publicTeacher//教授类

{public:

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

voiddisplay();//声明输出函数

voidchange(int,int,int);//声明修改函数

private:

floatarea;

BirthDatebirthday;//定义BirthDate类的对象作为数

据成员

};

Professor:

:

Professor(intn,charnam[20],chars,inty,intm,intd,floata):

Teacher(n,nam,s),birthday(y,m,d),area(a){}//定义构造函数

voidProfessor:

:

display()//定义输出函数

{Teacher:

:

display();

birthday.display();

cout<<"area:

"<

}

voidProfessor:

:

change(inty,intm,intd)//定义修改函数

{birthday.change(y,m,d);

}

intmain()

{Professorprof1(3012,"Zhang",'f',1949,10,1,125.4);//定义Professor对象prof1cout<

"<

prof1.display();//调用prof1对象的display函数

cout<

"<

prof1.change(1950,6,1);//调用prof1对象的change函数

prof1.display();//调用prof1对象的display函数

return0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 信息与通信

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1