日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++拷贝构造函数调用时机分析

發(fā)布時間:2023/12/4 c/c++ 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++拷贝构造函数调用时机分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

讓我們來分析下面這段代碼:

#include <iostream> #include <string> using namespace std;class Employee {private:static int sn;public:Employee() {cout << "Employee()" << endl;mysn = sn++;}Employee(const string &s) {cout << "Employee(const string &s)" << endl;name = s;mysn = sn++;}Employee (Employee &e) {cout << "Employee (Employee &e)" << endl;name = e.name;mysn = sn++;}Employee &operator=(Employee &rhs) {cout << "Employee &operator=(Employee &rhs)" << endl;name = rhs.name;return *this;}const string &get_name() {return name;}int get_mysn() {return mysn;}private:string name;int mysn; };int Employee::sn = 0;void f(Employee &s) {cout << s.get_name() << " " << s.get_mysn() << endl; }int main() {Employee a("趙"), b = a, c;c = b;Employee d = c;Employee e;e = c;f(a);f(b);f(c);f(d);f(e);return 0; }

測試結(jié)果:

  • Employee(“趙”):調(diào)用了Employee(const string &s)

  • Employee b = a 調(diào)用了Employee (Employee &e),可以看成Employee b(a),如果我們將Employee b = a改成:Employee b(a);也是調(diào)用Employee (Employee &e)

  • Employee c 調(diào)用了Employee()

  • c = b;調(diào)用了Employee &operator=(Employee &rhs)

  • Employee d = c;調(diào)用了Employee (Employee &e),可以看成Employee d( c ),如果我們將Employee d = c改成Employee d( c ),也是調(diào)用Employee (Employee &e)

  • Employee e;調(diào)用了Employee()

  • e = c;調(diào)用了Employee &operator=(Employee &rhs)

  • 如有錯誤,請在評論區(qū)留言指正一下,謝謝 !!!

    總結(jié)

    以上是生活随笔為你收集整理的C++拷贝构造函数调用时机分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。