第17章C++面向对象程序设计作业参考答案Word文档格式.docx

上传人:b****5 文档编号:16108481 上传时间:2022-11-20 格式:DOCX 页数:29 大小:26.48KB
下载 相关 举报
第17章C++面向对象程序设计作业参考答案Word文档格式.docx_第1页
第1页 / 共29页
第17章C++面向对象程序设计作业参考答案Word文档格式.docx_第2页
第2页 / 共29页
第17章C++面向对象程序设计作业参考答案Word文档格式.docx_第3页
第3页 / 共29页
第17章C++面向对象程序设计作业参考答案Word文档格式.docx_第4页
第4页 / 共29页
第17章C++面向对象程序设计作业参考答案Word文档格式.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

第17章C++面向对象程序设计作业参考答案Word文档格式.docx

《第17章C++面向对象程序设计作业参考答案Word文档格式.docx》由会员分享,可在线阅读,更多相关《第17章C++面向对象程序设计作业参考答案Word文档格式.docx(29页珍藏版)》请在冰豆网上搜索。

第17章C++面向对象程序设计作业参考答案Word文档格式.docx

//modelisaconst

constintv[]={1,2,3,4};

//v[i]isaconst

constintx;

//error:

noinitializer未赋初值

voidf()

{

model=200;

//error不能修改常量的值

v[2]++;

【修改1】

constintx=0;

//赋初值

cout<

model<

//修改常量的值

v[2]<

//修改常量的值

或者inttemp=v[2]+1;

【修改2】

int*constmodel=90;

constint*v[]={1,2,3,4};

 

1.4intstrcmp(constchar*,constchar*);

【解答】确保函数strcmp不会修改参数指针所指向的变量

1.6

(讲义)

•C++语言是强类型化语言,任何函数在使用以前必须有该函数的原型说明,以便进行实际参数与形式参数之间的类型匹配检查。

•函数返回值的类型和函数参数的类型、个数、次序在函数声明,函数定义和函数调用时必须匹配。

•C++语言的编译器执行上述检查能显著减少很多隐藏的错误。

使用函数原形执行强类型检查。

任何函数在使用以前必须有该函数的原型说明,以便进行实际参数与形式参数之间的类型匹配检查。

函数返回值的类型和函数参数的类型、个数、次序在函数声明,函数定义和函数调用时必须匹配。

如果某个函数的定义和调用与其原型不匹配,那么编译器会指出这种错误,而不用等到运行程序时才显示错误。

创建带有缺省参数的函数时,应注意:

1、缺省参数值应该代表最常使用的情况。

如果在80~90%的时间里能用上缺省值,缺省参数才比较有意义。

2、如果给某个参数一个缺省值,那么其后的所有参数都需要赋给缺省值。

1.8

iostream>

usingnamespacestd;

//Overloadmax()threeways重载函数名max三次

intmax(inta,intb);

longmax(longa,longb);

doublemax(doublea,doubleb);

{inta1=3,b1=10;

longa2=123456,b2=567893;

doublea3=2*10^6,b3=-12.34;

"

int"

max(a1,b1)<

long"

max(a2,b2)<

double"

max(a3,b3)<

//使用相同的函数名求不同类型数据的绝对值

return0;

intmax(inta,intb)

{intc;

a>

b?

c=a:

c=b;

return(c);

longmax(longa,longb)

{longc;

doublemax(doublea,doubleb)

{doublec;

1.9要点:

申请动态数组

//Asimpleexampleofnewanddelete.

string>

constintN=10;

intmain()

{char*p,q;

inti=0;

p=newchar[N];

//allocatememoryforaarray为数组分配动态内存空间

if(p==NULL)

{cout<

Allocationerror\n"

;

return1;

}

cin>

q;

while(q!

='

#'

{p[i++]=q;

}

endl<

Hereisnameatp:

"

i=0;

while(i<

N)

p[i++];

delete[]p;

//releasememory释放new分配的动态内存空间

1.10

voidf(inta[],intn,int&

max,int&

min)

max=min=a[0];

for(inti=1;

i<

n;

i++)

{

if(max<

a[i])max=a[i];

if(min>

a[i])min=a[i];

voidmain()

inta[10]={2,5,3,9,0,8,1,7,6,4};

intmax,min;

f(a,10,max,min);

Max:

max<

Min:

min<

第2章

2.1C++语言中类class和结构struct的主要区别是什么?

【解答】在C++中,对结构体做了一个很重要的扩充,即允许结构体包含函数成员。

如此一来,我们可以使用结构体中的数据成员描述对象的属性,使用结构体中的函数成员描述对象的操作。

2.2什么是类的接口,什么是类的实现?

一般把仅含函数原型的类声明部分称为类的接口;

一个类的内部数据结构和其所有成员函数的定义部分称为类的实现。

2.3公用public成员和私有private成员有何区别?

私有private成员只能被该类中的其他成员访问,而程序中的其它代码是不能直接访问这些变量的。

公用public成员既可以被该类的其他成员访问,也可以被程序中的其它代码访问。

类中的公用成员对外部代码是开放的,通常情况下,程序中的其它代码通过类的公用成员函数来访问类的私有成员。

2.4构造函数和析构函数的主要作用是什么?

它们各自有什么特性?

构造函数是类的一种特殊成员函数,用来为对象进行初始化(给对象的成员变量赋初值、申请一些

系统资源、打开文件操作等)。

在对象生成的时候自动执行初始化,这会消除任何错误地不执行初始化的可能。

这是C++面向对象程序设计帮助减少复杂性的另一途径。

析构函数的作用与构造函数正好相反,当对象被删除时,利用析构函数进行一些善后处理。

一般情况

下析构函数执行构造函数的逆操作,例如可以利用析构函数来释放构造函数所动态申请的内存空间。

2.5使用const修饰作为参数的对象引用有什么好处?

2.6

classcounter{

intvalue;

public:

counter(intnumber){value=number;

}

voidincrement(){value++;

}//给原值加1

voiddecrement(){value--;

}//给原值减1

intgetvalue(){returnvalue;

}//取得计数器的值

voidprint(){cout<

”valueis:

value;

}//显示计数器的值

};

voidmain()

{counterCount(10);

Count.increment();

Count.print();

Count.decrement();

Count.getvalue();

2.7试定义一个字符串类my_string,使其至少具有内容(contents)和长度(length)两个数据成员,并具有显示字符串,求字符串长度、给原字符串后添加一个字符串等功能。

string.h>

classmy_string{

private:

char*contents;

intlength;

my_string(char*s);

voidshow();

intgetlength();

voidadd(char*s);

my_string:

:

my_string(char*s)

{contents=newchar[strlen(s)+1];

strcpy(contents,s);

length=strlen(s);

voidmy_string:

show()

{cout<

contents<

intmy_string:

getlength()

{returnlength;

add(char*s)

{strcat(contents,s);

voidmain()

{my_stringST("

Iam"

);

ST.getlength()<

ST.show();

ST.add("

astudent"

2.8定义一个矩形类Rectangle,它有长length和宽width两个属性,有成员函数计算矩形的面积。

并在main()函数中测试这个类。

-

classRectangle{

intwidth;

Rectangle(intl,intw);

intarea();

Rectangle:

Rectangle(intl,intw)

{length=l;

width=w;

intRectangle:

area()

{return(length*width);

{RectangleRect(10,15);

Areais:

Rect.area()<

第3章

3.1解释下列名词:

类对象方法消息

类:

“类”是对一组具有共同属性特征和行为特征的对象的抽象。

一个类中所包含的方法和数据描述了一组对象的共同行为和属性。

对象:

面向对象软件系统中的对象是基本的运行时(runtime)实体,它既包含数据,也包括作用于数据的操作。

面向对象软件系统中的对象是现

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

当前位置:首页 > 求职职场 > 职业规划

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

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