亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C++ > 正文

深入C++拷貝構造函數的總結詳解

2020-01-26 16:13:04
字體:
來源:轉載
供稿:網友

拷貝構造函數是C++最基礎的概念之一,大家自認為對拷貝構造函數了解么?請大家先回答一下三個問題:
1. 以下函數哪個是拷貝構造函數,為什么?
X::X(const X&);  
X::X(X);  
X::X(X&, int a=1);  
X::X(X&, int a=1, b=2); 
2. 一個類中可以存在多于一個的拷貝構造函數嗎?
3. 寫出以下程序段的輸出結果, 并說明為什么? 如果你都能回答無誤的話,那么你已經對拷貝構造函數有了相當的了解。
 
#include <iostream> 
#include <string>    
struct X {  
  template<typename T>  
  X( T& ) { std::cout << "This is ctor." << std::endl; }  

  template<typename T>  
    X& operator=( T& ) { std::cout << "This is ctor." << std::endl; }  
};  

void main() {  
  X a(5);  
  X b(10.5);  
  X c = a;  
  c = b;  


解答如下:
1. 對于一個類X,如果一個構造函數的第一個參數是下列之一:
    a) X&
    b) const X&
    c) volatile X&
    d) const volatile X&
    且沒有其他參數或其他參數都有默認值,那么這個函數是拷貝構造函數.
    X::X(const X&);  //是拷貝構造函數  
    X::X(X&, int=1); //是拷貝構造函數 
    X::X(X&, int a=1, b=2);  //是拷貝構造函數 

2.類中可以存在超過一個拷貝構造函數,
class X {     
public:     
  X(const X&);     
  X(X&);            // OK  
}; 
注意,如果一個類中只存在一個參數為X&的拷貝構造函數,那么就不能使用const X或volatile X的對象實行拷貝初始化.
class X {  
public:  
  X();  
  X(X&);  
};  

const X cx;  
X x = cx;    // error  
如果一個類中沒有定義拷貝構造函數,那么編譯器會自動產生一個默認的拷貝構造函數.這個默認的參數可能為X::X(const X&)或X::X(X&),由編譯器根據上下文決定選擇哪一個.
默認拷貝構造函數的行為如下:默認的拷貝構造函數執行的順序與其他用戶定義的構造函數相同,執行先父類后子類的構造.拷貝構造函數對類中每一個數據成員執行成員拷貝(memberwise Copy)的動作.
 a)如果數據成員為某一個類的實例,那么調用此類的拷貝構造函數.
 b)如果數據成員是一個數組,對數組的每一個執行按位拷貝.
 c)如果數據成員是一個數量,如int,double,那么調用系統內建的賦值運算符對其進行賦值.

3.  拷貝構造函數不能由成員函數模版生成.
struct X {  
    template<typename T>  
    X( const T& );    // NOT copy ctor, T can't be X  

    template<typename T>  
    operator=( const T& );  // NOT copy ass't, T can't be X  
};  

原因很簡單,成員函數模版并不改變語言的規則,而語言的規則說,如果程序需要一個拷貝構造函數而你沒有聲明它,那么編譯器會為你自動生成一個. 所以成員函數模版并不會阻止編譯器生成拷貝構造函數, 賦值運算符重載也遵循同樣的規則

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品久久久久久下一站| 国产精品视频一| 伊人久久久久久久久久久久久| 亚洲另类激情图| 日韩欧美在线第一页| 国产97在线播放| 美女扒开尿口让男人操亚洲视频网站| 日韩精品在线播放| 亚洲综合中文字幕在线观看| 亚洲欧美国产一区二区三区| 久青草国产97香蕉在线视频| 欧美一区视频在线| 亚洲美女在线观看| 日韩精品在线观看一区| 久久视频在线观看免费| 欧美激情精品久久久久久| 欧美极品在线播放| 久久精品视频网站| 狠狠躁天天躁日日躁欧美| 91精品国产乱码久久久久久久久| 国产成人久久久| 久久久国产精彩视频美女艺术照福利| 欧美裸体xxxx极品少妇软件| 欧美性感美女h网站在线观看免费| 亚洲国产另类 国产精品国产免费| 国产亚洲激情在线| 国产香蕉一区二区三区在线视频| 国产精品久久久久一区二区| 岛国av一区二区三区| 国产精品视频久| 亚洲国内精品视频| 亚洲国产精品字幕| 国产成人在线视频| 国产精品免费久久久久影院| 26uuu日韩精品一区二区| 欧美成人sm免费视频| 国产亚洲人成网站在线观看| 亚洲国产精品久久久久秋霞蜜臀| 日韩免费电影在线观看| 国产精品第一区| 日韩免费av片在线观看| 成人激情在线播放| 中文字幕亚洲情99在线| 亚洲人成77777在线观看网| 欧美性xxxx在线播放| 欧美激情aaaa| 久久久精品久久久久| 欧美激情日韩图片| 77777少妇光屁股久久一区| 日韩成人在线免费观看| 日韩一区二区久久久| 国产成人精品综合久久久| 国产精品久久色| 57pao国产精品一区| 久久伊人精品视频| 国产在线精品成人一区二区三区| 91在线看www| 欧美孕妇与黑人孕交| 亚洲男人天堂九九视频| 国产在线观看一区二区三区| 精品在线小视频| 97视频在线观看免费高清完整版在线观看| 亚洲综合日韩在线| 久久免费视频网站| 日韩电视剧在线观看免费网站| 久久婷婷国产麻豆91天堂| 欧美大片va欧美在线播放| 姬川优奈aav一区二区| 91老司机精品视频| 日韩中文字幕网址| 91在线观看免费高清完整版在线观看| 久久久之久亚州精品露出| 日韩av一区在线观看| 激情久久av一区av二区av三区| 国产精品久久久久秋霞鲁丝| 成人在线一区二区| 懂色av影视一区二区三区| 久久久久久久一| 欧美国产日韩一区二区三区| 日韩av成人在线观看| 欧美日韩美女视频| 97婷婷涩涩精品一区| 欧美视频13p| 亚洲人成欧美中文字幕| 久青草国产97香蕉在线视频| 88国产精品欧美一区二区三区| 欧美日韩免费观看中文| 久久久精品在线| 午夜精品美女自拍福到在线| 精品福利视频导航| 亚洲国产精品久久久久| 久久偷看各类女兵18女厕嘘嘘| 国产精品稀缺呦系列在线| 久久久久久久久久婷婷| 57pao成人永久免费视频| 96pao国产成视频永久免费| 中文字幕亚洲专区| 亚洲三级 欧美三级| 草民午夜欧美限制a级福利片| 国内精品久久久久久影视8| 久久天天躁日日躁| 欧美日本国产在线| 日韩欧美aⅴ综合网站发布| 日本精品久久电影| 欧美日本高清视频| 亚洲天堂成人在线视频| 中文字幕视频一区二区在线有码| 欧美电影免费在线观看| 色偷偷88888欧美精品久久久| 国产婷婷97碰碰久久人人蜜臀| 国产日韩精品入口| 亚洲日本中文字幕免费在线不卡| 狠狠久久五月精品中文字幕| 欧美xxxx做受欧美.88| 国产精品三级久久久久久电影| 成人av.网址在线网站| 亲爱的老师9免费观看全集电视剧| 亚洲日韩中文字幕| 欧美亚洲成人免费| 日韩小视频网址| 欧美在线影院在线视频| 国产精品久久久av| 欧美精品手机在线| 国产精品吊钟奶在线| 国产亚洲在线播放| 日韩高清电影好看的电视剧电影| 97精品国产91久久久久久| 国产精品美腿一区在线看| 久久精品欧美视频| 欧美一性一乱一交一视频| 亚洲欧美日韩国产中文专区| 欧美日韩国产在线| 久久精品国亚洲| 日韩免费中文字幕| 国产美女高潮久久白浆| 亚洲天堂男人天堂女人天堂| 日韩精品高清在线观看| 亚洲综合成人婷婷小说| 最近中文字幕日韩精品| 亚洲电影第1页| 午夜精品免费视频| 亚洲天堂男人天堂女人天堂| 欧美日韩在线另类| 日韩最新在线视频| 国产日韩视频在线观看| 日本sm极度另类视频| 国产做受69高潮| 久久久久久com| 欧美一级视频一区二区| 国产精品十八以下禁看| 欧美最猛性xxxxx亚洲精品| 欧美日韩亚洲激情| 日韩视频一区在线| 精品视频在线播放色网色视频| 日本韩国欧美精品大片卡二| 亚洲国产日韩欧美综合久久| 欧美日韩午夜视频在线观看| 少妇av一区二区三区| 2019中文字幕在线观看| 91精品中国老女人| 精品久久久中文| 亚洲欧美激情另类校园| 国产日韩在线亚洲字幕中文| 福利视频第一区|