目錄從程式設計的角度,物件只是變數,因此
問題:程式中如何對乙個物件進行初始化,使得不管在什麼地方建立類物件,其成員變數的初始值都為固定值?
解決方案1
存在的問題
解決方案2:建構函式
示例:建構函式
注意:物件定義和物件宣告不同
建構函式的自動呼叫
class test
test(int v){}
};int main()
示例:帶引數的建構函式
建構函式的呼叫
示例:建構函式的手動呼叫 => 建立乙個物件陣列
需求:開發乙個陣列類解決原生陣列的安全性問題
拷貝建構函式
示例:特殊的建構函式
拷貝建構函式的意義
深淺拷貝
示例:物件的初始化
問題:什麼時候需要進行深拷貝?
分析:t1
和t2
的m_pointer
指向同一塊記憶體,之後會被釋放兩次
一般性原則:自定義拷貝建構函式,必然需要實現深拷貝
intarray
類的改進
1 1 物件模型
q1 c 的類有兩種資料成員 static 資料成員與 nonstatic 資料成員,有三種成員函式 static,nonstatic,virtual。q2 在虛繼承的情況下,base class不管在繼承串鏈中被派生多少次,永遠只會存在乙個例項 稱為subobject q3 c 物件模型。每個物件...
11 物件比較
1.數字比較用 字串比較用equals string str 要進行物件比較,必須對物件中所有屬性的值進行比較。範例 物件比較的基本方式 class book 省略無參構造方法和setter方法 public string gettitle public double getprice public...
17 物件的構造
如果沒有賦初值,全域性儲存區的成員變數初始值系統預設為0,棧空間和堆空間上成員變數初始值系統預設為隨機數。從程式設計的角度,物件只是變數,c 中可以定義與類名相同的特殊成員函式 建構函式。建構函式沒有任何返回型別的宣告。建構函式在物件定義時自動呼叫。每個物件在使用之前都應該初始化,建構函式用於物件初...