实验目的和要求
- 熟悉类的定义格式和类中成员的访问权限。
- 构造函数与析构函数的调用时机与顺序。
- 掌握对象的定义以及对象的初始化的时机与方法。
实验内容
1. 下面程序sy3_1.cpp中用ERROR标明的语句有错,在不删除和增加代码行的情况下,改正错误语句,使其正确运行。
//sy_1.cpp
#include<iostream>
using namespace std;
class Aa
{
public:
Aa(int i=0){a=i; cout<<"Constructor"<<a<<endl;}
~Aa(){
cout<<"Destructor"<<a<<endl;}
void print(){
cout<<a<<endl;}
private:
int a;
};
int main()
{
Aa a1(1),a2(2);
a1.print();
//cout<<a2.a<<endl; //ERROR
a2.print();
return 0;
}
源程序已被注释。添加修改后程序。
运行结果
结果分析:
- a是私有数据。所以main函数不能访问并输出
a2.a
。所以改为a2.print()
。- 该程序中定义了两个对象a1和a2。类中有两个构造函数。a1用成员选择运算符“
.
”访问成员函数print()
。 创建对象a1,a2时调用有一个参数构造函数,输出第一二行结果。a1,a2用成员选择运算符“.
”访问成员函数print()
,输出第三四行结果。然后运行析构函数输出第五六行结果。
2.调试下列程序。
//sy3_2.cpp
#include<iostream>
using namespace std;
class TPoint
{
public:
TPoint(int x,int y){X=x; Y=y;}
TPoint(TPoint &p); //
~TPoint( ){
cout<<"Destructor is called\n";}
int