对象的赋值
1.赋值的一般形式:对象名 2=对象名 1,是通过赋值号进行赋值的。
2. 进行赋值的两个对象必须是两个同类对象。
3.赋值时,其中一个对象应是确定的,即这个对象的数据成员是确定的。
对象的复制
1.对象复制的一般形式:类名 对象名2(对象名1。
2.也可以通过这样的形式进行复制:类名 对象名2=对象名1。
3对象的复制是通过复制构造函数进行的。
如:
Box(Box &b)
{
width = b.width;
length = b.length;
height = b.height;
}
如下是隐含使用到复制构造函数的情况:
#include<iostream>
using namespace std;
class Sum
{
public:
Sum(int = 6, int = 6);//声明指定默认参数值的构造函数
void get_sum()//声明一个输出x+y的值的函数
{
cout << "x+y=" << x + y<<endl;
}
int x;
int y;
};
Sum::Sum(int a, int b)//在类外定义一个普通构造函数
{
x = a;
y = b;
}
void get_x(Sum s)//定义一个输出x和y的函数,同时也利用复制构造函数将s1的值赋值给s
{
cout<<"x=" << s.x<<" "<<"y="<<s.y<<endl;
}
int main()
{
Sum s1(2000,19);
get_x(s1);
s1.get_sum();
}