2021 2 5 關於new的乙個教訓

2022-06-13 07:51:10 字數 484 閱讀 4189

千萬不要在類建構函式的初始化裡new任何東西,這會導致析構函式delete乙個野指標!建構函式一定要把所有的指標初始化為nullptr

以下**會報錯(堆記憶體崩潰):

integer::integer(long long n)

: buffer(default_buffer), length(0), num(new int[buffer])

num[length++] = (int)(n % 10);

}

以下是正確的版本:

integer::integer(long long n)

: buffer(default_buffer), length(0), num(nullptr)

num[length++] = (int)(n % 10);

}

關於new乙個物件的過程說明

關於new乙個物件的過程說明 a a new b 的意義 前提 a是b的父類 1 建立乙個類a的引用a 2 建立乙個類b的例項 3 把類b的引用賦值給a a a new a 建立a的物件並對其進行初始化。a 類new a 建立a的物件並對其初始化。類似構造乙個函式,分配記憶體空間 a 引用,指向ne...

物件 new乙個

1格式格式 class 類名 類名 要求符合大駝峰命名法,見名知意 類名這裡可以認為是乙個資料型別名,自定義資料型別 屬性描述 描述當前類有哪些屬性 例如 人類的身高體重,年齡姓名 行為描述 描述當前類有哪些行為 例如 人類的吃飯行為,睡覺行為,打遊戲行為依葫蘆畫瓢格式 scanner掃瞄器 sca...

new乙個物件的過程

class a public void a string name,int age class b 執行順序 1 因為new用到了 a.class,所以會先找到a.class檔案並載入到記憶體中 2 執行該類中的static 塊,如果有的話,給a.class類進行初始化。3 在堆記憶體中開闢空間,分...