C++实验二类与对象(附答案)

  • 格式:doc
  • 大小:301.50 KB
  • 文档页数:43

下载文档原格式

  / 69
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验二类与对象

实验目的和要求

1.掌握类、类的数据成员、类的成员函数的定义方式。

2.理解类成员的访问控制方式。

3.掌握对象的定义和操作对象的方法。

4.理解构造函数和析构函数的定义与执行过程。

5.掌握重载构造函数的方法。

6.了解拷贝构造函数的定义方法。

实验容

1.下面程序中有错,在不删除和增加代码行的情况下,改正错误语句,使其正确运行。#include

class Aa

{

public:

Aa(int i=0)

{

a=i;

cout<<"Constructor "<

}

~Aa()

{

cout<<"Destructor "<

}

void print()

{

cout<

}

private:

int a;

};

int main()

{

Aa al(1),a2(2);

al.print();

cout<

return 0;

}

2.检查下面的程序,找出其中的错误,并改正。然后上机调试,使程序能正常运行。

(1)

#include

class Date

{

void set_date();

void show_date();

int year;

int month;

int day;

};

Date d;

int main()

{

set_date();

show_date();

}

void set_date()

{

cin>>d.year;

cin>>d.month;

cin>>d.day;

}

void show_date()

{

cout<

(2)

#include

class A

{

public:

void A(int i=0)

{

m=i;

}

void show()

{

cout<

}

void ~A(){}

private:

int m;

};

int main()

{

A a(5);

a.m+=10;

a.show();

return 0;

}

(3)

#include class X

{

private:

int a=0;

int &b;

void setA(int i)

{

a=i;

}

X(int i)

{

a=i;

}

public:

int X()

{

a=b=0;

}

X(int i,int j)

{

a=i;

b=j;

}

void setC(int k)

{

c=c+k;

}

};

void main()

{

X x1;

X x2(2);

X x3(1,2);

x1.setA(3);

}

3.调试下列程序。

#include

class TPoint

{

private:

int X,Y;

public:

TPoint(int x,int y)

{

X=x;

Y=y;

cout<<"Constructor is called"<

}

TPoint(TPoint &p);

~TPoint()

{ cout<<"Destructor is called"<

int getx()

{ return X; }

int gety()

{ return Y; }

};

TPoint::TPoint(TPoint &p)

{

X=p.X;

Y=p.Y;

cout<<"Copy-initialization Constructor is called"<

}

void main()

{

TPoint p1(4,9);

TPoint p2(p1);

TPoint p3 = p2;

cout<<"p3=("<

}

(1)写出程序的输出结果,并解释输出结果。

(2)按下列要求进行调试:

在主函数体,添加下列说明语句:

TPoint p4,p5(2);

调试程序会出现什么现象?为什么?如何解决?(提示:对已有的构造函数进行适当修改)结合运行结果分析如何使用不同的构造函数创建不同的对象。

(3)在主函数使用new创建不同参数动态两个动态对象,输出其坐标,并用delete 删除之。运行程序,分析运行结果。

(4)在程序中定义个全局对象,在主函数最前添加语句:

cout<<"Enter main"<

运行程序,分析运行结果。