20.10.12,學習c++的第八天
建構函式和析構函式
class
person
//析構函式
~person()
};
建構函式的分類與呼叫
class
person
//有參建構函式
person
(int a)
//拷貝建構函式
person
(const person& p)
//析構函式
~person()
public
:int age;};
//呼叫
void
test02()
拷貝構造函式呼叫時機 沒聽懂
構造函式呼叫規則如下:
淺拷貝:簡單的賦值拷貝操作
深拷貝:在堆區重新申請空間,進行拷貝操作
如果利用編譯器提供的拷貝建構函式,會做淺拷貝操作。(淺拷貝帶來的問題就是堆區記憶體的重複釋放)
注意:如果屬性有在堆區開闢的,一定要自己提供拷貝建構函式,防止淺拷貝帶來的問題
class
person
;//無參(預設)建構函式
person
(int age ,
int height)
// 有參建構函式
//拷貝建構函式
person
(const person& p)
//析構函式
~person()
}public
:int m_age;
int* m_height;
};
c++提供了初始化列表語法,用來初始化屬性
class
person
//初始化列表方式初始化
person
(int a,
int b,
int c)
:m_a
(a),
m_b(b)
,m_c
(c)void
printperson()
private
:int m_a;
int m_b;
int m_c;
};
靜態成員就是在成員變數和成員函式前加上關鍵字static。分為靜態成員變數、靜態成員函式。
靜態成員變數:類內宣告,類外初始化;所有物件共享同乙份資料;在編譯階段分配記憶體。
靜態成員函式:只能訪問靜態成員變數。
c 入門程式設計學習記錄4
20.8.5,學習c 的第四天 結構體的知識以及用法 include include using namespace std struct student struct teacher int main 結構體陣列 struct student stuarr 2 結構體指標 struct stude...
c 入門程式設計學習記錄6
20.10.6,學習c 的第六天 函式預設引數 int func int a,int b 10,int c 10 1.如果某個位置引數有預設值,那麼從這個位置往後,從左向右,必須都要有預設值 2.如果函式宣告有預設值,函式實現的時候就不能有預設引數 宣告和實現只能有乙個預設引數 函式佔位引數 voi...
c 入門程式設計學習記錄9
20.10.19,學習c 的第九天 乙個空物件占用乙個位元組的空間。只有非靜態成員變數才屬於類的物件上。this指標指向被呼叫的成員函式所屬的物件 this指標的用途 在成員行為中使用成員屬性,預設是 this menber 空指標訪問成員函式 class person void showperso...