复制构造函数

来源:互联网 发布:淘宝仓库管理视频 编辑:程序博客网 时间:2024/05/16 06:29

今天回看了前面的内容,发现这一章掌握的不够好,就重看了一遍,顺便总结一下(无规律总结)。

复制构造函数用于复制对象,即可以初始化对象,也可以将复制得到的对象作为实参传递给函数,多用于初始化。

当我们这样写: string null_bulk = "9-9-9-9"; 在创建null_bulk时编译器先调用string的构造函数创建临时对象再用string的复制构造函数将null_bulk初始化为该临时对象副本(即"9-9-9-9”),个人感觉当使用“=”时就会调用到复制构造函数,就像书上讲的复制初始化,话说以前初始化时没有想到会有这么多步骤。

接下来就要定义复制构造函数了:

class Foo

{

public:

       Foo();   //非复制构造函数

       Foo(const Foo&);  //正确

}

可以说,复制构造函数就是就受单个类类型引用形参(通常用const修饰)的构造函数(对比一下构造函数)。

刚开始的时候不知道这个有什么用,后来看到重载操作符才想起类之间的相互赋值不像int型这种内置的,例如:

int a;

int b=a;  //这很自然

class sp{};

sp a;

sp b = a;

//这里b的“初始化”就要定义构造函数才能实现,不然怎么知道你说的是什么,sp又不是内置类型

 

咳咳,觉得这一篇有点水啊!尴尬

原创粉丝点击