内蒙古科技大学面向对象的程序设计实验5 类和对象(二)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内蒙古科技大学
面向对象的程序设计
实验报告
一、实验目的
1.理解掌握this指针的作用和用法;
2.理解掌握构造函数的定义和作用;
3.掌握构造函数的使用;
4.理解掌握拷贝构造函数的定义和使用;
5.理解掌握构造函数的重载;
6.理解掌握析构函数的定义和使用。
二、实验环境
编译器:Visual C++ 6.0.
操作系统:Windows 7 旗舰版
三、实验内容
2.1练习(一):
1.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。
#include
class CPoint
{
public:
void Set(intx,int y);
void Print();
private:
int x;
int y;
};
void CPoint::Set(intx,int y)
{
x = x;
y = y;
}
void CPoint::Print()
{
cout<<"x="< } void main() { CPointpt; pt.Set(10,20); pt.Print(); } 问题一:以上程序编译能通过吗,试解释该程序? 问题二:以上程序的运行结构是否正确,如果不正确,试分析为什么,应该如何改正?2.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。 #include class CPerson { public: void Print(); private: CPerson(); private: int age; char *name; }; CPerson::CPerson() { } void CPerson::Print() { cout<<"name="< } void main() { CPersonps(23,"张三"); ps.Print(); } 问题一:以上程序存在错误,在不改变主函数内容的前提下,试改正该程序。 2.2练习(二): 1. 设计实现一个CPoint类,满足以下要求: a.该类包含两个整型成员变量x(横坐标)和y(纵坐标),以及一个输出函数Print()用来输出横坐标和纵坐标,要求不可以在类的外部直接访问成员变量; b.可以采用没有参数的构造函数初始化对象,此时的成员变量采用默认值0; c.可以采用直接输入参数的方式来初始化该类的成员变量; d.可以采用其它的CPoint对象来初始化该类的成员变量; e.设计一个主函数来测试以上功能。 四、实验过程 练习5-1.1 实验题目源代码如下 代码编译无误,但是运行之后结果如下 x,y的值均为随机的错误数字,并非10和20此处分析如下 修改之后的代码如下 修改之后的代码运行成果如下 运行结果正确,修改正确 练习5-1.2 题目源代码如下 运行结果如下 分析错因为构造函数内容错误修改之后的代码如下 修改之后运行结果如下 结果正确,修改正确 练习5-2.1代码如下 运行结果如下 运行结果正确,且满足题目 五、实验总结 实验源代码: 练习(一) 修改后的代码为 #include class CPoint { public: CPoint() { x=0; y=0; } void Set(intx,int y); void Print(); private: int x; int y; }; void CPoint::Set(int x1,int y1) { x = x1; y = y1; } void CPoint::Print() { cout<<"x="< } void main() { CPointpt; pt.Set(10,20); pt.Print(); } 练习(二) 修改之后的代码为 #include class CPerson { public: void Print(); //private: CPerson(inta,char *na); //添加了CPerson类构造函数的内容private: int age; char *name; }; CPerson::CPerson(inta,char *na) //添加了CPerson类构造函数的内容{ age=a; //添加了CPerson类构造函数的内容 name=na; //添加了CPerson类构造函数的内容} void CPerson::Print() { cout<<"name="< } void main() { CPersonps(23,"张三"); ps.Print(); } 练习(三) #include class CPoint { private: //不可以在类外直接访问的数据成员变量x,y intx,y;