千萬不要在類建構函式的初始化裡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 在堆記憶體中開闢空間,分...