#include#include#includeusing namespace std;
/* 4.2 物件的初始化和清理
4.2.4 構造函式呼叫規則
預設情況下建立乙個類,c++編譯器至少給該類新增3個函式:
預設建構函式,無參,函式體為空
預設析構函式,無參,函式體為空
預設拷貝建構函式,對屬性進行值拷貝
規則:若使用者定義有參建構函式,則編譯器不再提供預設無參構造,但會提供預設拷貝構造
若使用者定義拷貝建構函式,則編譯器不再提供其他普通建構函式
*/class person
person(int _age)
/*person(const person & p)
*/~person()
int age;
};void test1()
/* person(const person & p)未注釋時列印
person 無參預設建構函式
person 拷貝建構函式
p2的年齡:18
person 析構函式
person 析構函式
person(const person & p)注釋時列印
person 無參預設建構函式
p2的年齡:18
person 析構函式
person 析構函式
原因分析
注釋後,編譯器自動提供預設的拷貝建構函式,對屬性進行值拷貝,即執行age = p.age
10 3重學C 之 函式過載
includeusing namespace std 三 函式提高 3.3 函式過載 函式名可以相同以提高復用性 函式過載需滿足的條件 同意作用域下 函式名相同 函式引數型別不同 個數不同 順序不同 void func void func int a void func double a void ...
11 3 4重學C 之 const修飾成員函式
include include includeusing namespace std 4.3.4 const修飾成員函式 常函式 成員函式後加const 修飾的是this指標,令指標指向的值也不可修改 常函式內不可修改成員屬性 成員屬性宣告時加關鍵字mutable後,在常函式中依然可以修改 常物件 ...
11 2 8重學C 之 靜態成員
include include includeusing namespace std 4.2 物件的初始化和清理 4.2.8 靜態成員 靜態成員變數 所有物件共享同乙份資料 在編譯階段分配記憶體 類內宣告,類外初始化 靜態成員函式 所有物件共享同一函式 靜態成員函式只能訪問靜態成員變數 class ...