zoukankan      html  css  js  c++  java
  • 5.0 C++远征:拷贝构造函数

    拷贝构造函数

    引:当使用默认初始化、等号初始化、小括号初始化等三种初始化方式实例化三个对象时,实际只调用了一份特殊构造函数:拷贝构造函数:

    1.拷贝构造函数的定义

    拷贝构造函数在名称上与普通构造函数一样,在参数上不一样:要加个const,而且入参是一个引用——而且是一个与自身类的数据类型完全相同的对象。

    拷贝构造函数的定义:类名(const 类名 &对象参数名)

    这样,在“引”中的以三种初始化方式实例化的三个对象,就会执行自定义拷贝构造函数中的相应代码。

    2.总结

    (1)

    系统自动生成的构造函数分为普通构造函数和拷贝构造函数。当通过初始化"()"或赋值"="来实例化一个对象的时候,调用的是拷贝构造函数。而非普通构造函数——直接Student stu;。

    • 如果没有自定义的拷贝构造函数则系统自动生成一个默认的拷贝构造函数
    • 当采用直接初始化或复制初始化实例化对象时系统自动调用拷贝构造函数

    初始化列表不仅可以写在普通构造函数后,还能写在拷贝构造函数后

    (2)

    构造函数分为:无参构造函数和有参构造函数。无参构造函数成为默认构造函数。有参构造函数分为有默认值的和无默认值的。如果所有都有默认值,则也为默认构造函数。

    拷贝构造函数的参数是确定的,不能重载

  • 相关阅读:
    POJ 1401 Factorial
    POJ 2407 Relatives(欧拉函数)
    POJ 1730 Perfect Pth Powers(唯一分解定理)
    POJ 2262 Goldbach's Conjecture(Eratosthenes筛法)
    POJ 2551 Ones
    POJ 1163 The Triangle
    POJ 3356 AGTC
    POJ 2192 Zipper
    POJ 1080 Human Gene Functions
    POJ 1159 Palindrome(最长公共子序列)
  • 原文地址:https://www.cnblogs.com/xiaoqingyang/p/6076808.html
Copyright © 2011-2022 走看看