物件導向程式設計特性:抽象、封裝和資料隱藏、多型、繼承、**的可重用性。
class stock
public://表示組成的公共介面的類成員(抽象)
void acquire(const char* co);
void buy(int num);
};//封裝:將抽象與實現分開
void stock::acquire(const char* co)
void stock::buy(int num)
內聯函式:位於類宣告中的函式定義;inline內聯限定符。
類宣告—>實現類成員函式—>建立類物件,通過」.」訪問類成員函式
類的建構函式和析構函式
建構函式無返回型別,函式名稱與類名相同,原型位於類宣告的公有部分,宣告物件時自動呼叫。預設建構函式:在宣告物件時未提供顯示初始值,用於建立物件的建構函式,在沒有提供任何建構函式時,c++會自動提供預設建構函式,但若定義了建構函式,就必須提供預設建構函式:1) 給已定建構函式提供引數預設值;2) 通過函式過載來定義另乙個建構函式。
析構函式:物件過期後,完成清洗工作。無返回型別,函式名稱與類名相同。呼叫情況:建立的是靜態儲存類物件,在程式結束時自動呼叫;建立的是自動儲存類物件,在程式執行完**塊時自動呼叫;通過new建立時,使用delete來釋放記憶體時自動呼叫;建立臨時物件,在結束使用時自動呼叫。
class classname;
類物件初始化後,賦新值時使用建構函式會導致在賦值前建立臨時物件。
this指標:指向呼叫成員函式的物件。
運算子過載:opreator運算子(引數列表),限制:過載後的運算子必須至少有乙個運算元是使用者覅你故意的型別;使用運算子不能違反運算子原本的法則;不能建立新運算子;sizeof、. 、.* 、?:不能過載;=,(),,->只能通過成員函式過載。
友元:函式成為類的友元,與成員函式相同許可權,宣告:friend 函式原型。
類的型別轉換:建構函式用作自動型別轉換(explicit可關閉這種特性);轉換函式:operator type() const,意思是把類->type,沒有宣告返回型別和引數。
五 物件拷貝
為什麼要使用轉殖 想要處理某個物件,又想將該物件的資料保留下來用於接下來的處理,就需要用到轉殖 clone方法為native方法,產生物件的效率更高 轉殖針對的是物件,而不是類 如何實現轉殖 實現cloneable介面,重寫clone方法 序列化和反序列化 深拷貝和淺拷貝的區別是什麼 深拷貝不但可以...
隨筆五 物件賦值
乙個物件被初始化之後再做賦值運算就是物件的賦值,如果物件在做初始化時,進行 號運算實際上是呼叫拷貝構造。a a2 a a a2 拷貝構造 a a3 a3已經被初始化,a3 a2 物件的賦值a a operator const t rhs return this 看到這裡,讀者可能會有一點疑惑,為什麼...
JS基礎語法(五)物件
現實生活中 萬物皆物件,物件是乙個具體的事物,乙個具體的事物就會有行為和特徵 例如 一部車 乙個手機 車是一類事物,門口停的那輛車才是物件。那麼車的特徵有 紅色 四個輪子 行為有 駕駛 剎車 因為物件可以抽象化一類的事物,方便使用,簡化 function printperson name,age,s...