C++实验3_2 类和对象(2)

一、实验目的和要求

 1.理解掌握this指针的作用和用法;

2.理解掌握构造函数的定义和作用;

3.掌握构造函数的使用;

4.理解掌握拷贝构造函数的定义和使用;

5.理解掌握构造函数的重载;

6.理解掌握析构函数的定义和使用。

二、实验环境(软、硬件及条件)

一台安装有Visual C++ 6.0的计算机

三、实验步骤

1.阅读下面的程序,回答程序后面的问题。

#include

class CPoint

{

public:

void Set(int x,int y);

void Print();

private:

int x;

int y;

};

void CPoint::Set(int x,int y)

{

x = x;

y = y;

}

void CPoint::Print()

{

cout<<"x="<

}

void main()

{

CPoint pt;

pt.Set(10,20);

pt.Print();

}

问题1:该程序的运行结果是        x=-858993460,y=-858993460                    

问题2

若将成员函数void Set(int x,int y);的定义修改如下:

void CPoint::Set(int x,int y)

{

this->x = x;

this->y = y;

}

修改后的运行结果是                            

 

2.阅读下面的程序,找出其中的错误,请在不改变主函数内容的前提下修改该程序使之运行正常。

#include

class CPerson

{

public:

void Print();

private:

CPerson();

private:

int age;

char *name;

};

CPerson::CPerson()

{

}

void CPerson::Print()

{

cout<<"name="<

}

 

void main()

{

CPerson ps(23,"张三");

ps.Print();

}

3.试设计一个CPoint类,满足以下要求:

(1)该类包含两个整型成员变量x(横坐标)和y(纵坐标),以及一个输出函数Print()用来输出横坐标和纵坐标,要求不可以在类的外部直接访问成员变量;

(2)可以采用没有参数的构造函数初始化对象,此时的成员变量采用默认值0;

(3)可以采用直接输入参数的方式来初始化该类的成员变量;

(4)可以采用其它的CPoint对象来初始化该类的成员变量;

(5)设计一个主函数来测试以上功能。

四、实验中遇到的问题及解决

 

 

 

 

五、实验结果及分析

1.问题1:x=-858993460,y=-858993460

  问题2: x=10,y=20

2.

#include

class CPerson

{

public:

void Print();

CPerson(int x,char*p);

private:

int age;

char *name;

};

CPerson::CPerson(int x,char *p)

{age=x;

name=p;

}

void CPerson::Print()

{

cout<<"name="<

}

void main()

{

CPerson ps(23,"张三");

ps.Print();

}

3.

#include

class CPoint

{

private:

int x, y;

public:

CPoint(){x=0,y=0;};

CPoint(int x1,int y1){x=x1,y=y1;};

modify(int x2,int y2){x=x2,y=y2;};

void Print(){cout<<"初始化后的坐标为:("<

};

void main()

{

CPoint a,b(8,9);

a.Print();

b.Print();

a.modify(9,8);

a.Print();

}

你可能感兴趣的:(C++实验3_2 类和对象(2))