内蒙古科技大学面向对象的程序设计实验5 类和对象(二)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

相关文档
最新文档