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"<运行程序,分析运行结果。