c 基礎學習 析構函式 拷貝建構函式

2021-09-02 13:34:42 字數 1442 閱讀 8875

字串函式

string類是c++提供的字串類,其主要功能是對字串進行操作。string類定義的變數稱為字串物件,該物件可以直接用字串常量賦值,也可呼叫string類中定義的成員函式。

常型別是指使用型別修飾符const說明的型別,常型別的變數或物件的值不能被更新。c++ 中引入const的目的是為了取代巨集這個預編譯指令,消除它不能進行語法檢查的缺點,同時繼承巨集替換的優點。c++中定義const常量具有不可變性。const可以保護被修飾的東西。防止意外的修改,增強程式的健壯性。

date a1(2012, 1, 23);

date a2(a1);

特點:

拷貝建構函式名字與類同名,沒有返回型別;

拷貝建構函式只有乙個形參,該引數是該類的物件的引用;

如果乙個類中沒有定義拷貝建構函式,則系統自動生成乙個預設拷貝建構函式,其功能通常是將已知物件的所有資料成員的值拷貝給對應物件的資料成員。

定義

拷貝建構函式的格式如下:

《類名》::《拷貝建構函式名》(《類名》&《引用名》)

其中, 《拷貝建構函式名》與該類名相同;

好處:

拷貝建構函式用於使用已知物件的值建立乙個同類的新物件。

把物件作為實參進行函式呼叫時,系統自動呼叫拷貝建構函式實現把物件值傳遞給形參物件;

函式的返回值為物件時,系統自動呼叫拷貝建構函式對返回物件值建立乙個臨時物件,然後再將這個臨時物件值賦給接收函式返回值的物件。

拷貝建構函式需要定義的情況是資料成員是指標

不是必須的,通常預設析構函式即可(無慘,函式體為空)

建構函式開啟乙個檔案,使用完檔案時,不要關閉檔案。

從堆中分配了動態記憶體區,在物件消失之前必須釋放。

特點:析構函式例項

該類定義的建構函式在物件之外分配一段堆記憶體空間,撤銷時,由析構函式收回堆記憶體。通過動態陣列申請和釋放,解決了指標成員指向外部(main函式)位址的問題。

#include #include using namespace std;

class cstuscore

//深拷貝

//重新定義拷貝建構函式。學生類中姓名是乙個指標,指向各自由new建立存放姓名字串的記憶體空間首位址。

建構函式與析構函式例項

#include using namespace std;

class point

point(point& p);

~point() {cout<

C 建構函式 拷貝構造 析構函式

建構函式 constructor 在例項物件時,系統自動呼叫,用來初始化物件的資料成員 建構函式宣告語法 類名 引數列表 建構函式注意點 include include using namespace std class computer 上面的建構函式也可以寫成引數列表初始化的形式 compute...

C 基礎(一)建構函式 析構函式 拷貝建構函式

在c 中你寫乙個空類,什麼都不做,編譯器會給你生成乙個建構函式,乙個拷貝建構函式,乙個拷貝賦值函式 運算子過載 乙個析構函式,而且是當他們被呼叫的時候才生成。這說明這四個函式的重要 這裡主要說他們其中的三個 c 中的建構函式用來產生物件,他告訴編譯器如何初始化乙個物件,以及其它一些前期工作 相對應的...

C 建構函式 析構函式 拷貝建構函式

建構函式 析構函式 拷貝建構函式 如果類成員變數有初始值,用這些初始值初始化成員變數 如果類成員變數沒有初始值,則預設初始化該成員變數 class student int main 使用注意事項 語法 這個預設建構函式之所以對student有效,是因為我們為內建型別的資料成員提供了初始值 如果你的編...