C++对象的复制
时间:2014-10-29 18:59 点击:次
有时需要用到多个完全相同的对象,例如,同一型号的每一个产品从外表到内部属性都是一样的,如果要对每一个产品分别进行处理,就需要建立多个同样的对象,并要进行相同的初始化,用以前的办法定义对象(同时初始化)比较麻烦。此外,有时需要将对象在某一瞬时的状态保留下来。
C++提供了克隆对象的方法,来实现上述功能。这就是对象的复制机制。
用一个已有的对象快速地复制出多个完全相同的对象。如
Box box2(box1);
其作用是用已有的对象box1去克隆出一个新对象box2。
其一般形式为:
类名 对象2(对象1);
用对象1复制出对象2。
可以看到,它与定义对象的方式类似,但是括号中给出的参数不是一般的变量,而是对象。在建立对象时调用一个特殊的构造函数——复制构造函数(copy constructor)。这个函数的形式是这样的:
- //The copy constructor definition.
- Box::Box(const Box& b)
- {
- height=b.height; width=b.width; length=b.length;
- }
- int main( )
- {
- Box box1(15,30,25); //定义box1
- cout<<"The volume of box1 is "<<box1.volume( )<<endl;
- Box box2=box1,box3=box2; //按box1来复制box2,box3
- cout<<"The volume of box2 is "<<box2.volume( )<<endl;
- cout<<"The volume of box3 is "<<box3.volume( )<<endl;
- }
- void fun(Box b) //形参是类的对象
- { }
- int main( )
- {
- Box box1(12,15,18);
- fun(box1); //实参是类的对象,调用函数时将复制一个新对象b
- return 0;
- }
- Box f( ) //函数f的类型为Box类类型
- {
- Box box1(12,15,18);
- return box1; //返回值是Box类的对象
- }
- int main( )
- {
- Box box2; //定义Box类的对象box2
- box2=f( ); //调用f函数,返回Box类的临时对象,并将它赋值给box2
- }
顶一下
(0)
0%
踩一下
(0)
0%
上一篇:C++对象之间相互赋值
下一篇:C++静态数据成员
相关内容:
最新内容
热点内容
- QQ群
-
微信
- 返回首页
- 返回顶部