郑州大学远程教育学院0806面向对象程序设计提交作业Word下载.docx

上传人:b****0 文档编号:13500621 上传时间:2022-10-11 格式:DOCX 页数:11 大小:18.19KB
下载 相关 举报
郑州大学远程教育学院0806面向对象程序设计提交作业Word下载.docx_第1页
第1页 / 共11页
郑州大学远程教育学院0806面向对象程序设计提交作业Word下载.docx_第2页
第2页 / 共11页
郑州大学远程教育学院0806面向对象程序设计提交作业Word下载.docx_第3页
第3页 / 共11页
郑州大学远程教育学院0806面向对象程序设计提交作业Word下载.docx_第4页
第4页 / 共11页
郑州大学远程教育学院0806面向对象程序设计提交作业Word下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

郑州大学远程教育学院0806面向对象程序设计提交作业Word下载.docx

《郑州大学远程教育学院0806面向对象程序设计提交作业Word下载.docx》由会员分享,可在线阅读,更多相关《郑州大学远程教育学院0806面向对象程序设计提交作业Word下载.docx(11页珍藏版)》请在冰豆网上搜索。

郑州大学远程教育学院0806面向对象程序设计提交作业Word下载.docx

迭代器所指向的对象为容器中元素(结构体)的节点。

如定义一个classList的容器,容器的节点为ListItem,那么迭代器就应该指向(的对象)容器中的ListItem节点。

而迭代器通过重载*(解引用)运算符,从而就可以得到节点的值。

通过重载operator->

运算符就可以得到容器节点地址(指针)

算法:

算法通过操作容器对应的迭代器,就可以间接地操作容器中的元素。

而不需要关注容器的内部细节

三者之间联系:

每个容器都有专属的迭代器,而算法通过迭代器对容器中的元素进行操作。

3、什么是静态成员?

有何特点?

在c++类中声明成员时可以加上static关键字,这样声明的成员就叫做静态成员(包括数据成员和成员函数)。

静态成员的特点是:

不管这个类创建多少个对象,其静态成员在内存中只保留一份副本,这个副本为该类的所有对象所共享。

面对对象方法中还有类属性的概念,类属性是描述类的所有对象的共同特征的一个数据项,对于任何对象实例,它的属性值是相同的,C++通过静态数据成员来实现类属性。

4、类的构造函数和析构函数有何特点?

构造函数主要用来对成员初始化和分配空间,析构函数用于执行一些清理任务,如释放分配给对象的内存空间等。

构造函数有以下特点:

1.构造函数的名字必须与类名相同;

2.构造函数可以有任意类型的参数,但不能具有返回类型;

3.定义对象时,编译系统会自动地调用构造函数;

4.构造函数是特殊的成员函数,函数体可以在类体内,也可写在类体外;

5.构造函数被声明为公有函数,但它不能像其他成员函数那样被显式调用,它是在定义对象的同时被调用的。

析构函数有以下特点:

1.析构函数的名字必须与类名相同,但它前面必须加一个波浪号~;

2.析构函数没有参数,也没有返回值,而且不能被重载,因此在一个类中只能有一个析构函数;

3.当撤销对象时,编译系统会自动地调用析构函数。

5、类成员的访问权限有哪些?

类成员的访问权限:

继承有关

public此成员都可公开调用;

protected同包或对继承的类才可公开调用,静态成员也必须继承后才能调用A.a或使用public;

friendly对同包的类可以公开调用;

private只有本类实例成员方法才可调用。

6、面向对象的基本要素是什么?

抽象、继承、封装、多态;

二)、分析下面的代码,回答问题(每题10分,共40分)

1.下面程序的执行结果是什么?

为什么?

classB{

protected:

virtualvoidf(){cout<

<

"

B"

endl;

}

public:

voidg(){f();

};

classC:

publicB{

voidf(){cout<

C"

voidmain(){

Cd;

d.g();

输出:

C

因为创建C类型的对象调用其父类的函数gg中调用f类中函数参数默认始终有一个this指针,这个调用的this指向的就是d对象调用g,g中调用f产生this->

f()调用C中的f。

2.下面程序的执行结果是什么?

classA

{

intn;

classB:

publicA{};

classD:

publicB,publicC

intgetn(){returnB:

:

n;

voidmain()

Dd;

d.B:

n=10;

d.C:

n=20;

cout<

n<

1020

D类是从b类和c类派生的,而b类和c类又都是从类派生的,但各有自己的副本。

所以对于对象d,d.B:

n与d.C:

n是两个不同的数据成员,互无联系。

所以程序结果为:

10,20

3.下面程序的执行结果是什么?

intx;

A(){x=0;

A(intval){x=val;

voidoperator++(int){x++;

publicA

inty;

B():

A(){y=0;

B(intval1,intval2):

A(val1){y=val2;

voidoperator--(int){x--;

y--;

voiddisp()

x<

y<

Bd(3,5);

d.disp();

d++;

d--;

35

45

23Bd(3,5);

//调用构造函数B(int,int)A(int)得到x=3y=5

//打印35

//调用继承自A的++函数,x++得到x=4y=5

//打印45

//调用B的--函数,x=3y=4

//调用B的--函数,x=2y=3

//打印23

所以结果是

23

4.下面程序的执行结果是什么?

ClassA

Public:

virtualvoiddisp(){cout<

”classA”<

endl;

ClassB:

voiddisp(){cout<

”classB”<

”classC”<

voidcdisp(A*p){p->

disp();

Bb;

Cc;

Cdisp(&

b);

c);

classB

classC

B类和c类是a类的派生,p作为参数时,是一个A的指针,但是编译时,调的disp是各自继承类成员函数。

所以输出是classB,classC。

三、根据要求编写程序:

(每题15分,共30分)

1.设计一个父亲类Father、母亲类Mother和子女类Child,其主要数据是姓名,子女使用父亲的姓,最后输出子女的姓名和父母姓名。

程序如下:

#include<

iostream>

string>

usingnamespacestd;

classfather{

father(){}

father(stringx,stringm)

{

this->

x=x;

m=m;

}

voidgetx()

{

cout<

陈"

;

voidshow()

父亲:

m<

private:

stringx;

stringm;

classmather{

mather(stringx,stringm)

mx=x;

mm=m;

母亲:

mx<

mm<

stringmx;

stringmm;

classchild:

publicfather{

child(stringm)

fatherf("

"

国强"

);

matherm("

李"

丽"

childc("

文化"

cout<

姓名:

c.getx();

c.show();

f.show();

m.show();

运行结果如下:

陈文化

陈国强

李丽

2.设计一个三角形类Triangle,包含三角形三条边长的私有数据成员,另有一个重载运算符+,以实现两个三角形对象的面积之和。

Input

输入数据有多组,每组占二行,每行包括3个整数,表示三角形的三条边(保证能构成三角形)。

Output

对于每组数据,输出占一行。

先是第1个三角形的面积,然后是第2个三角形的面积,接下来是两个面积之和。

中间用空格隔开。

SampleInput

345

456SampleOutput

6.009.9215.92

 

cmath>

iomanip>

classTriangle

doublex,y,z;

doublep,m;

staticdoubles;

Triangle(doublea,doubleb,doublec)

x=a;

y=b;

z=c;

p=(y+x+z)/2;

m=sqrt(p*(p-x)*(p-y)*(p-z));

s=s+m;

voidprint()

setiosflags(ios:

fixed);

setprecision

(2)<

"

staticvoidshow()

s<

s=0;

doubleTriangle:

s=0;

intmain()

doublea,b,c,a1,b1,c1;

while(cin>

>

a>

b>

c)

cin>

a1>

b1>

c1;

Triangles1(a,b,c);

Triangles2(a1,b1,c1);

s1.print();

s2.print();

Triangle:

show();

}

return0;

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

当前位置:首页 > 医药卫生 > 基础医学

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

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