如果对一个类定义了两个或多个对象,则这些同类的对象之间可以互相赋值,或者说,一个对象的值可以赋给另一个同类的对象。这里所指的对象的值是指对象中所有数据成员的值。
对象之间的赋值也是通过赋值运算符“=”进行的。本来,赋值运算符“=”只能用来对单个的变量赋值,现在被扩展为两个同类对象之间的赋值,这是通过对赋值运算符的重载实现的。
实际这个过程是通过成员复制来完成的,即将一个对象的成员值一一复制给另一对象的对应成员。
对象赋值的一般形式为
对象名1 =
对象名2;
注意对象名1和对象名2必须属于同一个类。例如:
Student stud1,stud2;
//定义两个同类的对象
┆
stud2=stud1;
//将stud1赋给stud2
通过下面的例子可以了解怎样进行对象的赋值。
例9.9 对象的赋值。
#include
<iostream>
using namespace std;
class Box
{
public :
Box(int =10,int =10,int =10); //声明有默认参数的构造函数
int volume( );
private
:
int height;
int width;
int length;
};
Box::Box(int
h,int w,int len)
{
height=h;
width=w;
length=len;
}
int Box::volume( )
{
return (height*width*length);
//返回体积
}
int main( )
{
Box box1(15,30,25),box2;
//定义两个对象box1和box2
cout<<″The volume of box1 is ″<<box1.volume(
)<<endl;
box2=box1; //将box1的值赋给box2
cout<<″The volume of
box2 is ″<<box2.volume( )<<endl; return 0;
}
运行结果如下:
The
volume of box1 is 11250
The volume of box2 is 11250