c 拷貝(複製)建構函式

2022-07-07 11:36:08 字數 1043 閱讀 3614

class line;

line::line(const line& obj)

拷貝建構函式是一種特殊的建構函式,它在建立物件時,是使用同一類中之前建立的物件來初始化新建立的物件。拷貝建構函式通常用於:

1、通過使用另乙個同型別的物件來初始化新建立的物件,即用已有物件給新建立物件賦值。

line line1(10);

line line2 = line1; // 這裡呼叫了拷貝建構函式

2、物件作為函式引數並且發生值傳遞時。

void display(line obj)

在這裡,obj 是乙個物件引用,該物件是用於初始化另乙個物件的。下面是乙個line類的拷貝建構函式:

class line

;line::line(const line &obj)

下面給出乙個例項:

#include using namespace std;

class line;

// 成員函式定義,包括建構函式

line::line(int len)

line::line(const line &obj)

line::~line(void)

int line::getlength( void )

void display(line obj)

{ cout << "line 大小 : " << obj.getlength() 《程式執行結果為:

呼叫建構函式

呼叫拷貝建構函式並為指標 ptr 分配記憶體

呼叫拷貝建構函式並為指標 ptr 分配記憶體

line 大小 : 10

釋放記憶體

呼叫拷貝建構函式並為指標 ptr 分配記憶體

line 大小 : 10

釋放記憶體

釋放記憶體

釋放記憶體

c 複製 拷貝建構函式

在c 中,定義乙個空類時,編譯器會預設宣告6個成員函式,它們分別是 class empty 注意 一下,編譯器預設合成的析構函式不是虛函式。首先,說一下什麼是拷貝建構函式 也可以叫複製建構函式 它是乙個特殊的建構函式,具有單個形參 此形參是對該類型別的引用,需要用const修飾,否則會無限迴圈呼叫複...

拷貝建構函式(複製建構函式)

執行 物件a 物件b時,系統需要呼叫拷貝建構函式,如果程式設計師沒寫,則呼叫預設的拷貝建構函式。預設的拷貝建構函式利用淺拷貝方式,它的樣子是 a const a a 淺拷貝 拷貝的時候,兩個指標指向同乙個區域 char str1 helloworld char str2 str1 深拷貝 拷貝的時候...

C 拷貝構造 拷貝複製 析構函式

帶有指標的成員的類必須有拷貝建構函式和拷貝賦值函式,淺拷貝預設的賦值函式會將乙個指標賦值給另乙個,導致進行賦值的物件指標指向的內容記憶體洩漏 string.h ifndef mystring define mystring class string private char m data endif...