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