只有單個形參,而且該引數是對本類型別物件的引用。
主要用於:
1 根據另乙個同型別的物件顯示或隱式的初始化乙個物件
string a = "2 複製乙個物件,將它作為實參傳給乙個函式abc"; //
呼叫複製建構函式將a初始化為abc
string aa = string(); //
呼叫string()的建構函式,建立乙個新的物件,再呼叫 複製建構函式初始化aa
string aa(5,"
c"); //
直接初始化
3 從函式返回時複製乙個物件
aa function(aa&a)4 初始化順序容器中的元素
vector arr(6); //5 根據元素初始化陣列元素呼叫int預設建構函式,然後呼叫複製建構函式給vector進行初始化
aa a =
class顯式的宣告其複製建構函式為private.aa;
對如下類進行定義,編寫乙個複製建構函式複製所有成員。複製pstring指向的物件而不是複製指標。
類定義:
structnoname
private
:std::
string *pstring;
inti;
double
d; };
#include "輸出如下:stdafx.h
"#include
using
namespace
std;
struct
noname
noname(
const noname&);
public
: std::
string *pstring;
inti;
double
d;
};noname::noname(
const noname&other)
intmain()
複製控制 複製建構函式
只有單個形參,而且該引數是對本類型別物件的引用。主要用於 1 根據另乙個同型別的物件顯示或隱式的初始化乙個物件 string a abc 呼叫複製建構函式將a初始化為abc string aa string 呼叫string 的建構函式,建立乙個新的物件,再呼叫 複製建構函式初始化aa string...
複製建構函式
今天回看了前面的內容,發現這一章掌握的不夠好,就重看了一遍,順便總結一下 無規律總結 複製建構函式用於複製物件,即可以初始化物件,也可以將複製得到的物件作為實參傳遞給函式,多用於初始化。當我們這樣寫 string null bulk 9 9 9 9 在建立null bulk時編譯器先呼叫string...
複製建構函式
拷貝建構函式的標準寫法如下 class base base const base b 上述寫法見得最多,甚至你認為理所當然。那麼如果我們不寫成引用傳遞呢,而是值傳遞,那麼會怎樣?class base base const base b 編譯出錯 error c2652 base illegal co...