实验一
一、明确的概念:
(1)理解类和对象的概念;(具体见附一)
类是抽象的对象是具体的例如:你、我、他都是人那么你、我、他就是对象人就是类
(2)掌握类与对象的定义方法;
类的定义:class类名…定义这个类员名或成员函数
不能通过外部直接访问(不声明访问属性时系统默认为私有)当出现对象名成员私有时编译器报错
与private类似但protected属性的成员可以继承private不能继承
附:如何知道该程序析构函数的
调用顺序是p3p2p1
答:将拷贝构造函数中改为
x2y2
析构函数中
在
cout”Destructor
is
called”之后添加
”x”x”y”y后面
的不变
运行时析构函数输出结果变为:
Destructoriscalledx12
y16
Destructoriscalledx6y8
Destructoriscalledx3y4
Pressa
ykeytoco
ti
ue
由此可知其调用顺序
或者在拷贝构造函数和析构函数
中的cout语句的e
dl之前
加入this来输出对象地址再
对号入座也可知调运顺序
(4)掌握构造函数和析构函数的含义与作用、定义方式和实现;
构造函数:为数据成员开辟存储空间函数名必须与类名相同之前绝对不许说明返
回值类型void也不行构造函数不能由用户调用即:对象名构造函
数名参数是错误的构造函数是随着对象的声明而调用的例如:class
Stude
tStude
tcout”Hello”e
dlI
tmai
voidcout”Hello”e
dlStude
tA
运行结果:Helloe
dli
tgetxretur
xi
tgetyretur
yprivatei
txy
运行结果:Copyi
itia
izatio
co
structoriscalledCopyi
itia
izatio
co
structoriscalledp334DestructoriscalledDestructoriscalledDestructoriscalledPressa
ykeytoco
ti
ue
Coordi
ateCoordi
ateCoordi
atepe
dl
i
tmai
Coordi
atep134
调用构造函数调用拷贝构造函数(见书P89)
fCoordi
atep2p1Coordi
atep3p2cout