C++对象之间相互赋值
时间:2014-10-29 18:57 点击:次
如果对一个类定义了两个或多个对象,则这些同类的对象之间可以互相赋值,或者说,一个对象的值可以赋给另一个同类的对象。这里所指的对象的值是指对象中所有数据成员的值。
对象之间的赋值也是通过赋值运算符“=”进行的。本来,赋值运算符“=”只能用来对单个的变量赋值,现在被扩展为两个同类对象之间的赋值,这是通过对赋值运算符的重载实现的。
实际这个过程是通过成员复制来完成的,即将一个对象的成员值一一复制给另一对象的对应成员。
对象赋值的一般形式为:
对象名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;
- }
- 对象的赋值只对其中的数据成员赋值,而不对成员函数赋值。数据成员是占存储空间的,不同对象的数据成员占有不同的存储空间,赋值的过程是将一个对象的数据 成员在存储空间的状态复制给另一对象的数据成员的存储空间。而不同对象的成员函数是同一个函数代码段,不需要、也无法对它们赋值。
- 类的数据成员中不能包括动态分配的数据,否则在赋值时可能出现严重后果 (在此不作详细分析,只需记住这一结论即可)。
顶一下
(0)
0%
踩一下
(0)
0%
上一篇:C++对象的动态建立和释放
下一篇:C++对象的复制
相关内容:
最新内容
热点内容
- QQ群
-
微信
- 返回首页
- 返回顶部