zoukankan      html  css  js  c++  java
  • 拷贝构造函数 转型构造函数

      拷贝构造函数创建一个新的对象,此对象是另一个对象的拷贝品。
    要注意两点:
    第一,拷贝构造函数的原型是引用,如
    Person(Person &);
    Person(const Person &);
    第二,拷贝构造函数可以有多于一个的参数,但第一个以后的所有参数都必须有默认值
    Person(const Person & p,bool married = false);(第一个参数可以无默认值)
    如果类的设计者不提供拷贝构造函数,编译器会自动生成一个。

    通常,如果一个类包含指向动态存储空间的数据成员,则就应为这个类设计拷贝构造函数。
    如果想新对象和原对象指向不同的存储空间,就必须自己新设计拷贝构造函数。这样修改新对象的数据成员就不会改变原有对象的数据成员。
    所以,拷贝构造函数的特点就是函数名必须和类名一致,它惟一的一个参数是本类的一个引用变量。
    *********************************************************a beautiful cutline***
    转型构造函数,隐型类型转换,使用了一个隐藏的方式将string转换为person
    Person(string s)
    class Person {
          public:
                explicit Person(const string &n) {name = n;}//使用explicit禁止了转型构造函数
    }















































































































































































































































































































































































































































































































































































































































































































  • 相关阅读:
    lambda表达式
    各种模块化简介及演变过程
    filter-api文档
    RegExp正则表达式规则以及常用正则表达式
    各种循环遍历对比
    条件语句对比
    莫队小结
    停更公告
    POJ2728 Desert King
    笛卡尔树Cartesian Tree
  • 原文地址:https://www.cnblogs.com/xiexie/p/1579646.html
Copyright © 2011-2022 走看看