南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx
- 文档编号:19643270
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:10
- 大小:19.21KB
南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx
《南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《南京信息工程大学滨江学院C++面向对象程序设计期末复习资料Word文档格式.docx(10页珍藏版)》请在冰豆网上搜索。
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=”<
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
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;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 南京 信息 工程 大学 滨江 学院 C+ 面向 对象 程序设计 期末 复习资料