首页 > 其他分享 >拷贝构造函数

拷贝构造函数

时间:2023-02-12 14:44:54浏览次数:45  
标签:调用 对象 编译器 拷贝 类名 构造函数

拷贝构造函数

用一个已存在的对象创建新的对象,不会调用(普通)构造函数,而是调用拷贝构造函数。

如果类中没有定义拷贝构造函数,编译器将提供一个拷贝构造函数,它的功能是把已存在对象的成员变量赋值给新对象的成员变量。

用一个已存在的对象创建新的对象语法:

类名 新对象名(已存在的对象名);

类名 新对象名=已存在的对象名;

拷贝构造函数的语法:

类名(const 类名& 对象名)

注意:

l 访问权限必须是public。

l 函数名必须与类名相同。

l 没有返回值,不写void。

l 如果类中定义了拷贝构造函数,编译器将不提供默认的拷贝构造函数。

l 以值传递的方式调用函数时,如果实参为对象,会调用拷贝构造函数。

l 函数以值的方式返回对象时,可能会调用拷贝构造函数(VS会调用,Linux不会,g++编译器做了优化)。

l 拷贝构造函数可以重载,可以有默认参数。

类名(......,const 类名& 对象名,......)

l 如果类中重载了拷贝构造函数却没有定义默认的拷贝构造函数,编译器也会提供默认的拷贝构造函数。

标签:调用,对象,编译器,拷贝,类名,构造函数
From: https://www.cnblogs.com/tgfoven/p/17113801.html

相关文章

  • 构造函数与析构函数
    构造函数和析构函数构造函数:在创建对象时,自动的进行初始化工作。析构函数:在销毁对象前,自动的完成清理工作。1)构造函数语法:类名()l访问权限必须是public。l函数名必......
  • python 变量拷贝(深拷贝&浅拷贝)
    #浅拷贝:拷贝父对象,不拷贝对象内部的子对象importcopya={'a':[1,2,3]}b=a.copy()a['a'].append(4)print(a,b)print(id(a['a']),id(b['a']))print("="*......
  • Spring构造函数
    Spring中的一个bean,需要实例化得到一个对象,而实例化就需要用到构造方法。一般情况下,一个类只有一个构造方法:要么是无参的构造方法要么是有参的构造方法如果只有一个......
  • 原型 / 构造函数 / 实例
    原型(prototype):一个简单的对象,用于实现对象的属性继承。可以简单的理解成对象的爹。在Firefox和Chrome中,每个JavaScript对象中都包含一个_proto_(非标准)的属性指向它爹(该......
  • 前端学习案例6-构造函数继承
    ......
  • Promise构造函数
    介绍Promise是ES6引入的异步编程的新解决方案,语法上Promise是一个构造函数,用来封装一步操作并可以获取其成功或失败的结果。1.Promise构造函数:Promise(excutor){}2.P......
  • js基础笔记学习107-构造函数
     ......
  • 构造函数的执行顺序(初始化顺序)和析构函数的执行顺序(析构顺序)
    1.构造函数的执行顺序(构造顺序)(1)虚拟基类的构造函数(2)基类的构造函数(3)成员对象的构造函数(初始化顺序为成员声明的顺序)(4)自身的构造函数2.析构函数的执行顺序(析构顺序)(1)自......
  • Solidity极简入门#11. 构造函数和修饰器
    这一讲,我们将用合约权限控制(Ownable)的例子介绍solidity语言中构造函数(constructor)和独有的修饰器(modifier)。构造函数构造函数(constructor)是一种特殊的函数,每个合约可以定义......
  • js构造函数详解
    1.构造函数介绍构造函数是专门用来生成对象的函数,它提供模板,描述对象的基本结构。一个构造函数,可以生成多个对象,这些对象都有相同的结构。构造函数的写法就是一个普通的函......