11 物件的構造

2022-07-17 19:33:10 字數 766 閱讀 8323

目錄從程式設計的角度,物件只是變數,因此

問題:程式中如何對乙個物件進行初始化,使得不管在什麼地方建立類物件,其成員變數的初始值都為固定值?

解決方案1

存在的問題

解決方案2:建構函式

示例:建構函式

注意:物件定義物件宣告不同

建構函式的自動呼叫

class test

test(int v){}

};int main()

示例:帶引數的建構函式

建構函式的呼叫

示例:建構函式的手動呼叫 => 建立乙個物件陣列

需求:開發乙個陣列類解決原生陣列的安全性問題

拷貝建構函式

示例:特殊的建構函式

拷貝建構函式的意義

深淺拷貝

示例:物件的初始化

問題:什麼時候需要進行深拷貝?

分析:t1t2m_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 中可以定義與類名相同的特殊成員函式 建構函式。建構函式沒有任何返回型別的宣告。建構函式在物件定義時自動呼叫。每個物件在使用之前都應該初始化,建構函式用於物件初...