南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx

上传人:b****5 文档编号:19643270 上传时间:2023-01-08 格式:DOCX 页数:10 大小:19.21KB
下载 相关 举报
南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx_第1页
第1页 / 共10页
南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx_第2页
第2页 / 共10页
南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx_第3页
第3页 / 共10页
南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx_第4页
第4页 / 共10页
南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx

《南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。

南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx

C++提供了虚基类的方法,使得在继承间接共同基类时只保留其一份成员。

18.多态及其分类P145

多态性是指用一个名字定义不同的函数,这些函数执行不同但又类似的操作,从而可以使用相同的调用方式来调用这些具有不同功能的同名函数。

参数多态,包含多态,重载多态,强制多态,前两种称为通用多态,后两种称为专用多态

19.虚函数与重载函数的比较....P153

(1)函数重载处理的是同一层次上的同名函数问题,而虚函数处理的是同一类族中不同派生层次上的同名函数问题,前者是横向重载,后者可以理解为纵向重载。

但与重载不同的是:

同一类族的虚函数的首部是相同的,而函数重载时函数的首部是不同的。

(2)重载函数可以是成员函数或普通函数,而虚函数只能是成员函数。

(3)重载函数调用是以所传递参数序列的差别作为调用不同函数的依据;

虚函数是根据对象的不同去调用不同类的虚函数。

(4)虚函数在运行时表现出多态功能,这是C++精髓,而重载函数则在编译时表现出多态性。

20,一个类的函数是否是虚函数的条件是:

.....P151

判断该函数与基类的虚函数有相同的名称;

该函数与基类的虚函数有相同的参数个数及相同的对应参数类型;

该函数与基类的虚函数有相同的返回类型或者满足赋值兼容规则的指针、引用型的返回函数。

21,cincout>

>

<

<

22,根据文件中数据的组织,文件分为ascII文件和二进制文件

23,强制类型转换:

(int)3.5int(3.5)

24,内联函数inlineP62

该方法的思想是在编译时将调用函数的代码直接嵌入到调用函数处。

INLINE函数的机制兼顾了函数和效率两个方面的有点。

 

二、看程序结果

1、以下程序的结果是_____5,75,105,7_________________(全局变量与局部变量问题)

viodmyfunction()

{inty=10;

cout<

x<

“,”<

y<

endl;

}

intx=5,y=7;

intmain()

{cout<

myfunction();

cout<

2、以下程序的结果是___2,122,14_____________________________(静态变量应用)

intret(inta)

{staticintc=10;

a=a+c 

;

c=a 

returnc;

intmain()

{inta=2;

for(inti=0;

i<

2;

i++)cout<

a<

”,”<

ret(a))<

3、以下程序的结果是________________3________________(指针)

intmain()

{inta=2;

Int*b=&

a;

a=3;

*b;

4、以下程序的结果是________________3________________(引用)

{inta=2;

int&

b=a;

b;

5、以下程序的结果是________________________________________(参数传递)

{intx(3),y(8) 

Swap(x,y);

“x=“<

“y=”<

endl 

voidSwap(int&

a,int&

b)

{intt;

t=a 

a=b 

b=t 

6、以下程序的结果是________________________________(参数传递)

Swap(&

x,&

y);

voidSwap(int*a,int*b)

t=*a 

*a=*b 

*b=t 

7、以下程序的结果是________________4________________(引用)

a=a+b;

8、以下程序的结果是_________________5_______________(数组)

{inta[5]={2,3,4,5,6};

Int*b=a;

*(b+3);

三、程序填空

1、输入一个整数,将各位数字反转后输出(利用运算符/和%)

intmain(){

intn,rd,newnum;

cin>

n;

do{rd=____n%10_______;

cout<

rd;

n=__n/10_;

}while(___n!

=0__);

endl;

2、输入一系列整数,统计出正整数个数和负整数个数,读入0结束

inti=0,j=0,n;

cin>

while(n!

=0){if(n>

0)___i++______;

if(n<

0)__j++______cin>

}

”正整数个数:

“<

i<

”负整数个数:

”<

j<

3、用户输入考试分数(0~100),输出考试等级。

intm;

_cin>

m>

endl_____________ 

switch(____m/10_____){

case10:

case9:

”优秀”;

break;

case8:

”良好”;

case7:

”中等”;

case6:

”及格”;

default:

”不及格”;

4、交换两个整数

{intx(5),y(10) 

voidSwap(int_&

a______,int____&

b_____)

t=a;

a=b;

b=t;

5、查找数组中元素值为5的元素,返回其序号

intn,a[10],i=0;

for(i=0;

10;

i++)cin>

a[i];

for(i=0;

i++)if(____a[i]==5______)__count<

i______;

if(i==10)cout<

”nofind”;

elsecout<

i;

6、查找数组中元素值为’b’的元素,将其替换为‘B’

chara[10];

inti=0,j=0,n;

i++)

if(______a[i]=='

b'

_______________){______a[i]='

B'

_____;

”ok”;

7、交换两个整数

Swap(_int&

x______ 

_int&

y__________);

voidSwap(int*a,int*b)

___t=*a_________ 

____*a=*b 

_____*b=t________}

四、编程题

2、定义一个复数类,实现两个复数类相加和相减。

P206

要求:

(1)将运算符函数重载为成员函数;

(2)将运算符函数重载为友元函数

#include<

iostream>

usingnamespacestd;

classComplex

{public:

Complex(){real=0;

imag=0;

Complex(doubler,doublei){real=r;

imag=i;

Complexoperator+(Complex&

c2);

Complexoperator-(Complex&

voiddisplay();

private:

doublereal;

doubleimag;

};

voidComplex:

:

display()

{cout<

"

("

real<

"

imag<

i)"

ComplexComplex:

operator+(Complex&

c2)

{

Complexc;

c.real=real+c2.real;

c.imag=imag+c2.imag;

operator-(Complex&

c.real=real-c2.real;

c.imag=imag-c2.imag;

Complexc1(3,4),c2(5,-10),c3,c4;

c1.display();

c2.display();

c3=c1+c2;

c3=c1+c2="

c3.display();

c4=c1-c2;

c4=c1-c2="

c4.display();

return0;

}#include<

iostream.h>

friendComplexoperator+(Complex&

c1,Complex&

friendComplexoperator-(Complex&

Complexoperator+(Complex&

c.real=c1.real+c2.real;

c.imag=c1.imag+c2.imag;

Complexoperator-(Complex&

c.real=c1.real-c2.real;

c.imag=c1.imag-c2.imag;

5-7

#include 

using 

namespace 

std;

class 

Cat 

public:

Cat(int 

age){numOfCats++;

virtual 

~Cat() 

numOfCats--;

static 

int 

getnumOfCats() 

return 

numOfCats;

Cat:

numOfCats 

0;

void 

telepathicFunction() 

cout 

There 

are 

cats 

alive!

\n"

main() 

const 

maxCats 

5;

*catHouse[maxCats];

for 

(i 

maxCats;

i++) 

catHouse[i] 

new 

Cat(i);

telepathicFunction();

delete 

catHouse[i];

4-11

Rectangle

Rectangle(float 

len, 

float 

width)

Length 

len;

Width 

width;

~Rectangle(){};

GetArea() 

Width;

GetLength() 

Length;

GetWidth() 

main()

length, 

请输入矩形的长度:

cin 

length;

请输入矩形的宽度:

Rectangle 

r(length, 

width);

长为"

length 

宽为"

width 

的矩形的面积为:

r.GetArea 

() 

3、编写一个类,其成员函数包括:

1)接受键盘输入的英文句子;

2)实现一条英文句子中字母的个数统计并输出;

3)输出英文句子。

主函数里进行测试。

#include<

classChar

Char(){count=0;

voidInput();

voidshow();

voidGetCount()

{

字母个数为:

count-1;

private:

chara[100];

intcount;

voidChar:

Input()

for(inti=0;

i<

100;

i++)

count++;

a[i];

if(a[i]=='

@'

)//当输入的符合为@是退出循环

break;

show()

intmain(){

Chara;

a.Input();

a.show();

a.GetCount();

return0;

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

当前位置:首页 > 工作范文 > 其它

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

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