複製控制 複製建構函式

2022-02-05 16:13:28 字數 1189 閱讀 7116

只有單個形參,而且該引數是對本類型別物件的引用。

主要用於:

1 根據另乙個同型別的物件顯示或隱式的初始化乙個物件

string a = "

abc"; //

呼叫複製建構函式將a初始化為abc

string aa = string(); //

呼叫string()的建構函式,建立乙個新的物件,再呼叫 複製建構函式初始化aa

string aa(5,"

c"); //

直接初始化

2 複製乙個物件,將它作為實參傳給乙個函式

3 從函式返回時複製乙個物件

aa function(aa&a)
4 初始化順序容器中的元素

vector arr(6); //

呼叫int預設建構函式,然後呼叫複製建構函式給vector進行初始化

5 根據元素初始化陣列元素

aa a =

class

aa;

顯式的宣告其複製建構函式為private.

對如下類進行定義,編寫乙個複製建構函式複製所有成員。複製pstring指向的物件而不是複製指標。

類定義:

struct

noname

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...