zoukankan      html  css  js  c++  java
  • c++ 复制构造函数和赋值函数

    c++ 自动提供了下面这些成员函数

    1默认构造函数 

    2.复制构造函数

    3.赋值操作符

    4.默认析构函数

    5.地址操作符

    赋值构造函数copy construtor 用于将一个对象复制到新创建的对象中,也就是说,它用于初始化过程中,而不是常规的赋值过程中。

    类的copy sconstrutor函数原型通常如下:

    ClassName(const ClassName & );

    对于复制构造函数,需要知道2点:何时调用和有何功能。

    新建一个对象并将其初始化为同类现有对象时,复制构造函数都将调用。这在很多情况下都有可能发生,最常见的情况是将新对象显示地初始化为现有的对象,例如motto是一个String对象,则下面4中声明都将调用copy construtor:

    string ditto(motto)

    string metto=motto;

    string also=string(motto)

    string *pstr=new string(motto)

    其中中间的2中声明可能会使用copy constructor直接创建metto和also,也可能使用复制构造函数生成一个临时对象,然后将临时对象的内容赋给metto和also,这取决于具体的实现。最后一个声明使用metto初始化一个匿名对象,并将新对象的地址赋给pstr指针。

     每当程序生成了对象副本时,编译器都将使用复制构造函数。具体地说,当函数按值传递对象或函数返回对象时,都将使用copy consturor.记住:按值传递意味着创建原始变量的一个副本

  • 相关阅读:
    前端学习笔记
    C#学习笔记
    angualr跨域访问配置
    一文把samba相关的都说清楚
    centos6.5上进行crontab操作
    VS2017 EF本地数据库链接
    Laravel服务/服务提供者/容器/契约和门面
    Laravel之目录结构
    Laravel之视图和Blade模板引擎
    Laravel之HTTP相应
  • 原文地址:https://www.cnblogs.com/youxin/p/3280296.html
Copyright © 2011-2022 走看看