#include <iostream>
using namespace std;
class A
{
public:
A(int i,int j){n=i;m=j;} //构造函数带两个参数,并将参数的值分别赋给两个私有成员
A(A&t){cout<<"复制构造函数运行\n";n=t.n;m=t.m;} //模拟的默认复制构造函数,通过别名t访问对象,然后将该对象的成员赋给新对象的成员,完成复制工作
void print(){cout<<n<<m;}//输出两个成员的值
private:
int n; //数据成员n
int m; //数据成员m
};
void main()
{
A a(2,4); //定义一个对象a并初始化它的私有成员n和m的值为2和4
a.print(); //输出成员n和m的值
cout<<"\n"; //空一行
A b(a); //定义一个对象b并将对象a作为它的参数,由于这里是传递对象
//,因此会自动调用默认复制构造函数,将对象a的数据成员n和
//m的值复制给对象b的数据成员n和m。
b.print();
}
using namespace std;
class A
{
public:
A(int i,int j){n=i;m=j;} //构造函数带两个参数,并将参数的值分别赋给两个私有成员
A(A&t){cout<<"复制构造函数运行\n";n=t.n;m=t.m;} //模拟的默认复制构造函数,通过别名t访问对象,然后将该对象的成员赋给新对象的成员,完成复制工作
void print(){cout<<n<<m;}//输出两个成员的值
private:
int n; //数据成员n
int m; //数据成员m
};
void main()
{
A a(2,4); //定义一个对象a并初始化它的私有成员n和m的值为2和4
a.print(); //输出成员n和m的值
cout<<"\n"; //空一行
A b(a); //定义一个对象b并将对象a作为它的参数,由于这里是传递对象
//,因此会自动调用默认复制构造函数,将对象a的数据成员n和
//m的值复制给对象b的数据成员n和m。
b.print();
}