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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

C++ Primer 5th笔记(chap 13 拷贝控制)拷贝构造函数

發布時間:2025/3/21 c/c++ 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++ Primer 5th笔记(chap 13 拷贝控制)拷贝构造函数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. 拷貝構造函數

如果一個構造函數的第一個參數是自身類類型的引用,且任何額外參數都有默認值,則此構造函數是拷貝構造函數。

class Foo{ public:Foo();//默認構造函數 (僅在程序員沒有定義構造函數的情況下)Foo(const Foo&);//拷貝構造函數 };

注:拷貝構造函數通常不應該是explicit的, 否則不能用于拷貝形式初始化

Sales_data item1(null_book); // 正確:直接初始化 Sales_data item2 = null_book; //錯誤:不能將explicit的構造函數用于拷貝形式初始化過程

2、合成拷貝構造函數synthesized copy constructor

如果我們沒有給一個類定義拷貝構造函數,則編譯器會定義一個拷貝構造函數。

2.1 定義

編譯器將其參數的成員逐個拷貝到正在創建的對象中,編譯器從給定對象中依次將每個非static成員拷貝到正在創建的對象中。

  • 類類型成員:使用它的拷貝構造函數來拷貝
  • 內置類型:直接拷貝
  • 數組類型:逐元素拷貝

2.2 如果使用的初始化值要求通過一個 explicit 的構造函數來進行類型轉換

vector<int> v1(10); //正確,直接初始化 vector<int> v2 = 10; //錯誤,接受大小參數的構造函數是explicit 的 void f(vector<int>); //f的參數進行拷貝初始化 f(10); //錯誤,不能使用一個explicit的構造函數拷貝一個實參 f(vector<int>10); //正確,從一個int值直接構造一個臨時的vector

3、拷貝初始化
3.1 定義

. 使用指定構造函數創建一個臨時對象
. 復制構造函數將那個臨時對象復制到正在創建的對象。

3.2 兩種初始化

直接初始化: 直接調用與實參匹配的構造函數
拷貝初始化:總是調用復制構造函數

string dots(10,'.'); //直接初始化 string s(dots); //直接初始化 string s2 = dots; //拷貝初始化 string s3 = "9-999-9"; //拷貝初始化 string s4 = string(100,'9'); //拷貝初始化

3.3 注意

. 如果一個類有一個移動構造函數,則拷貝初始化有時會使用移動構造函數而非拷貝構造函數。
. 當復制構造函數被聲明為私有時,所有的復制初始化都不能使用。

3.4 拷貝初始化的其他情形:

不僅僅在使用= 定義變量時發生拷貝初始化,如下情況也會發生拷貝初始化:

  • 將一個對象作為實參傳遞給一個非引用類型的形參。
  • 從一個返回類型為非引用類型的函數返回對象。
  • 用花括號列表初始化一個數組中的元素或者一個聚合類中的成員。
  • 某些類類型還會對它們所分配的對象使用拷貝初始化,當初始化標準庫容器時,調用其 insert 或 push 成員,容器會對其元素進行拷貝初始化,與之相對,用 emplace 創建的成員執行直接初始化。

4. 編譯器可以繞過拷貝構造函數

在拷貝初始化的過程中,編譯器可以(但不是必須)跳過拷貝/移動構造函數,直接創建對象。
eg.

string null_book = "9-999-9"; //拷貝初始化 -> string null_book("9-999-9"); //編譯器略過了拷貝構造函數
  • 前提條件:拷貝/移動構造函數必須是存在并且可訪問的

總結

以上是生活随笔為你收集整理的C++ Primer 5th笔记(chap 13 拷贝控制)拷贝构造函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人婷婷久久 | 久草电影在线 | 久久久久麻豆 | 免费不卡视频 | 在线免费观看你懂的 | 五月激情综合网 | 在线视频免费观看你懂的 | 92久久| 欧美性受xxxxxx黑人xyx性爽 | 日本黄色片网址 | 91在线观 | 男人喷出精子视频 | 老熟女一区二区三区 | 久久性精品 | 香蕉911 | 成人毛片在线精品国产 | 国产aⅴ片 | 一区二区福利 | 日本人妖xxxx | 18深夜在线观看免费视频 | 青草青草久热 | 成人h动漫精品一区二 | 伊人久久青青 | 99精品久久久久久久 | 国产又黄又粗又猛又爽的视频 | 色版视频在线观看 | 男女毛片视频 | 日本亚洲国产 | 免费观看黄色小视频 | 日本一区二区视频 | 亚洲欧美日本在线观看 | 亚洲精品 日韩无码 | 欧美一区二区高清 | 黄视频在线 | 午夜影院久久久 | 色婷婷视频在线 | 香蕉视频网址 | 精品国产视频一区二区三区 | 国产欧美在线一区 | 性做久久久久久久免费看 | 住在隔壁的她动漫免费观看全集下载 | 国产丰满果冻videossex | 先锋影音av资源站 | 蜜桃av噜噜一区二区三区 | av动漫网站 | 亚洲色图视频在线观看 | 台湾佬av | 精品裸体舞一区二区三区 | 亚洲国产一区二区三区在线观看 | 91亚洲网| 国产美女被草 | 精品三级 | 亚洲123区| 国产一区二区视频免费在线观看 | 绯色av一区| 秋霞福利视频 | 国产精品伊人久久 | 国产天堂视频 | 欧美bdsm调教视频 | 日本美女黄色 | 成人免费不卡视频 | 又黄又爽在线观看 | 伊人久久爱 | 日韩精品极品视频免费观看 | 美女被男人桶出白浆喷水 | 春色激情站 | 欧美老司机 | 奴性白洁会所调教 | 成人午夜精品 | 天天狠天天插 | 免费毛片在线播放免费 | 91在线小视频 | 青青草小视频 | 在线观看羞羞漫画 | 欧洲成人精品 | 黑人巨大精品欧美一区免费视频 | 超碰凹凸| 国产精品视频免费在线观看 | 免费爱爱网站 | 视频一区二区免费 | 国语对白永久免费 | 国产原创麻豆 | 欧美成人一区二区三区高清 | 中国在线观看免费视频 | 国产又粗又猛又爽又 | 无码av免费毛片一区二区 | 免费在线观看不卡av | 亚洲天天av | 欧美激情首页 | 久久精品天天中文字幕人妻 | 制服.丝袜.亚洲.中文.综合懂 | 在线免费观看黄网站 | 国产精品免费一区二区三区在线观看 | 超能一家人电影免费喜剧在线观看 | 色xxxxx| 麻豆婷婷| 人人干人人插 | 国产中文视频 | 欧美激情校园春色 |