17 物件的構造

2021-08-19 16:50:28 字數 1054 閱讀 1036

如果沒有賦初值,全域性儲存區的成員變數初始值系統預設為0,棧空間和堆空間上成員變數初始值系統預設為隨機數。

從程式設計的角度,物件只是變數,

c++中可以定義與類名相同的特殊成員函式-建構函式。

建構函式沒有任何返回型別的宣告。

建構函式在物件定義時自動呼叫。

每個物件在使用之前都應該初始化,建構函式用於物件初始化。

建構函式可以根據需要定義引數,物件定義和物件宣告不同:

物件定義:申請物件的空間並呼叫建構函式。

物件宣告:告訴編譯器存在這樣乙個物件。

test t1(1);  //呼叫 test(int v)

test t2=1;     //一樣 呼叫  test (int v)

int i=1;         //初始化

int i(100);    //初始化

i=1;             //賦值

手工呼叫建構函式:

test ta[3]=;

test t=test(100);   // 手工呼叫初始化方式

小例項:開發乙個陣列類解決原生陣列的安全性問題

提供函式獲取陣列長度

提供函式獲取陣列元素

提供函式設定陣列元素

#ifndef _intarray_h_

#define _intarray_h_

class intarray

;#endif

#include "intarray.h"

intarray::intarray(int len)

}int intarray::length()

bool intarray::get(int index, int& value) 

return ret;

}bool intarray::set(int index,int value)

return ret;

}void intarray::free()

for(int i=0;i

}a.free();

system("pause");

return 0;

17 物件的構造(中)

1 建構函式 建構函式和普通函式的區別 普通函式的函式名可以隨機定義,而建構函式的函式名和類名一致 普通函式有返回值,而建構函式沒有返回值 普通函式可以定義引數,那麼建構函式可以定義引數嗎?class test test t 定義物件並呼叫建構函式 int main 我們的整個編譯過程分為好幾步 1...

17 物件的構造(上)

注 部落格中內容主要來自 狄泰軟體學院 部落格僅當私人筆記使用。測試環境 ubuntu 10.10 gcc版本 4.4.5 一 問題 物件中成員變數和初始值是多少?二 小實驗 1 下面的類定義中成員變數i和j的初始值是什麼?class test int getj 程式設計實驗 成員變數的初始化 17...

11 物件的構造

目錄從程式設計的角度,物件只是變數,因此 問題 程式中如何對乙個物件進行初始化,使得不管在什麼地方建立類物件,其成員變數的初始值都為固定值?解決方案1 存在的問題 解決方案2 建構函式 示例 建構函式 注意 物件定義和物件宣告不同 建構函式的自動呼叫 class test test int v in...