zoukankan      html  css  js  c++  java
  • 93、拷贝构造函数和赋值运算符重载的区别?

    1.拷贝构造函数是函数,赋值运算符是运算符重载。

    2.拷贝构造函数会生成新的类对象,赋值运算符不能。

    3.拷贝构造函数是直接构造一个新的类对象,所以在初始化对象前不需要检查源对象和新建对象是否 相同;赋值运算符需要上述操作并提供两套不同的复制策略,另外赋值运算符中如果原来的对象有 内存分配则需要先把内存释放掉。

    4.形参传递是调用拷贝构造函数(调用的被赋值对象的拷贝构造函数),但并不是所有出现"="的地 方都是使用赋值运算符,如下:

    Student s;
    Student s1 = s; // 调用拷贝构造函数
    Student s2;
    s2 = s; // 赋值运算符操作

    注:类中有指针变量时要重写析构函数、拷贝构造函数和赋值运算符
  • 相关阅读:
    vue-cli的npm run build的常见问题
    es6 Symbol
    es6 对象的扩展
    es7 函数绑定
    es6 箭头函数
    学习weex遇见非常奇怪的问题
    微信
    java面试题
    PHP面试题
    Android
  • 原文地址:https://www.cnblogs.com/crbhf/p/14995024.html
Copyright © 2011-2022 走看看