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禁止了转型构造函数
    }















































































































































































































































































































































































































































































































































































































































































































  • 相关阅读:
    ansible 批量在远程主机上执行命令
    SQLAlchemy
    operator, itertools
    mongodb基础语法
    django model Meta选项
    __getattr__,settr
    django的contenttype表
    time和datetime和tzinfo
    全局钩子的改名
    dom中文字居中
  • 原文地址:https://www.cnblogs.com/xiexie/p/1579646.html
Copyright © 2011-2022 走看看