文档介绍:实验6 拷贝构造函数
实验目的
掌握C++中类和对象的使用方法;
熟悉构造函数和析构函数的概念;
掌握构造函数和析构函数的定义方法;
熟悉拷贝构造函数的概念和定义方法。
实验内容与步骤
1、请按要求运行下列程序,从中体会拷贝构造函数的作用。
#include<>
class A{
public:
A(){x=0; cout<<"CA0"<<endl;}
A(int i){x=i; cout<<"CA1"<<endl;}
A(A &r){x=; cout<<"CA2"<<endl;}
~A(){cout<<"DA"<<endl;}
private:
int x;
};
void f1(A m)
{}
void f2(A &m)
{}
int main()
{
A a;
A b(a);
f1(a);
f2(a);
}
2、请问以下代码运行会在屏幕上输出什么?为什么?
#include <>
class Tdate{
public:
Tdate(){cout<<"A"<<endl;}
Tdate(Tdate & t){cout<<"B"<<endl;}
~Tdate(){cout<<"C"<<endl;}
private:
int x;
};
void main()
{
Tdate days[10];
}
3、请问以下程序输出什么?为什么?(提示:构造类成员)
#include <>
class A{
public:
A(){ cout<<"构造A"<<endl; }
~A(){ cout<<"析构A"<<endl; }
};
class C{
public:
C(){ cout<<"构造C"<<endl; }
~C(){ cout<<"析构C"<<endl; }
private:
A a;
int i;
};
int main(){ C c; }
4、把以下程序补充完整,使之可以正常运行,并思考为什么得到这样的运行结果。
class Point
{
public:
Point(int xx=0,int yy=0){X=xx; Y=yy;}
Point (Point& p) ;
int GetX() {return X;}
int GetY() {return Y;}
private:
int X,Y;
};
__________________//定义拷贝构造函数
{
X=;
Y=;
}
int main()
{ Point A(1,2);
__