回覆列表
-
1 # 醬醬
-
2 # 湘雪晨晨
C++是C語言的繼承,它既可以進行C語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的面向物件的程式設計。C++擅長面向物件程式設計的同時,還可以進行基於過程的程式設計,因而C++就適應的問題規模而論,大小由之。下面介紹VC6.0新建cpp檔案方法:
C++是C語言的繼承,它既可以進行C語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的面向物件的程式設計。C++擅長面向物件程式設計的同時,還可以進行基於過程的程式設計,因而C++就適應的問題規模而論,大小由之。下面介紹VC6.0新建cpp檔案方法:
"wang","NO NAME"這類字面量(字串常量一種)並非new出來的物件,是不可以被delete。
p_owner=new char[strlen(p)+1];
p_owner=p;
這裡犯了很嚴重的錯誤:
第一句分配了char[]物件並把其首地址賦給p_owner,但並沒有往裡賦什麼值,
第二句馬上把p的值(按上下文理解就是常量"wang"的首地址)賦給p_owner,等於把new出來的char陣列給搞丟了。
這句p_owner=new char[strlen(p)+1];白忙活一場不說,還把一個在堆上分配的物件搞丟了而沒delete,會導致記憶體洩露。
ps:記憶體分配儘量遵循誰建立,誰delete的原則,儘量不要乞求別人給你delete,也儘量不要妄想一個未知的呼叫者給你傳個new出來的物件讓你進行delelte。