实验二 类与对象
实验目的和要求
1.掌握类、类的数据成员、类的成员函数的定义方式。
2.理解类成员的访问控制方式。
3.掌握对象的定义和操作对象的方法。
4.理解构造函数和析构函数的定义与执行过程。
5.掌握重载构造函数的方法。
6.了解拷贝构造函数的定义方法。
实验内容
1.下面程序中有错,在不删除和增加代码行的情况下,改正错误语句,使其正确运行。rackham
#include<iostream.h>
class Aa
{
public:
Aa(int i=0)
{
a=i;
cout<<"Constructor "<<a<<endl;
}
~Aa()
{
cout<<"Destructor "<<a<<endl;
}
void print()
{
cout<<a<<endl;
repair是什么意思
eyes }
private:
int a;
};
int main()
{
Aa al(1),a2(2);
al.print();
cout<<a2.a<<endl;
return 0;
}
2.检查下面的程序,找出其中的错误,并改正。然后上机调试,使程序能正常运行。
(1)
#include<iostream.h>
class Date
{
void t_date();
void show_date();
int year;
int month;
int day;
};
briefcaDate d;
int main()
{
t_date();
show_date();
}
void t_date()
{
cin>&ar;
cin>&h;
cin>>d.day;
}
void show_date()
{频道英文
cout<&ar<<'/'<&h<<'/'<<d.day<<endl;
}
(2)
#include<iostream.h>
class A
{
public:
void A(int i=0)
{
m=i;
}
void show()
{
cout<<m<<endl;
}
void ~A(){}
private:
int m;
};
int main()
{韩语
A a(5);
a.m+=10;
a.show();
return 0;
}
(3)
如何提高员工执行力#include<iostream.h>
class X
{
private:
int a=0;
int &b;
void tA(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 tC(int k)
{gofast
c=c+k;
}
};
void main()
{
X x1;
X x2(2);
X x3(1,2);
x1.tA(3);
}
3.调试下列程序。
#include<iostream.h>
class TPoint
{
private:
int X,Y;
public:
TPoint(int x,int y)
{
X=x;
Y=y;
cout<<"Constructor is called"<<endl;
}
TPoint(TPoint &p);
~TPoint()
antique { cout<<"Destructor is called"<<endl; }
int getx()
{ return X; }
int gety()
{ return Y; }
};
TPoint::TPoint(TPoint &p)
{
X=p.X;
Y=p.Y;
cout<<"Copy-initialization Constructor is called"<<endl;
}
void main()
{
TPoint p1(4,9);英里和公里怎么换算
TPoint p2(p1);
TPoint p3 = p2;
cout<<"p3=("<&()<<","<&()<<")"<<endl;
}
(1)写出程序的输出结果,并解释输出结果。
(2)按下列要求进行调试:
在主函数体内,添加下列说明语句:
TPoint p4,p5(2);
调试程序会出现什么现象?为什么?如何解决?(提示:对已有的构造函数进行适当修改)结合运行结果分析如何使用不同的构造函数创建不同的对象。