上課的東西給忘了。一般來說含有指標的類要注意以下幾個方面:
要自己寫無參建構函式除非是dev
要自己寫複製建構函式,注意的問題和賦值符號的=問題相同,不要隨意!切記切記。
要把=號過載,即不僅要根據需要把const char*給物件型別賦值的=號過載,還要把物件之間賦值的=號也過載
一道程式填空題耗費了幾個小時,現摘如下:
#include #include #include using namespace std;
class mystring
else
p = null;
} ~mystring()
mystring()
mystring(const mystring &s)
mystring &operator=(const char* w)
else
return *this;
} mystring &operator=(const mystring &w)
if(p) delete p;
if(w.p)
else
return *this;
} mystring ©(const char*w)
else
return *this;
} friend ostream& operator<<(ostream &cout,mystring& w)
}
原則就是,絕對不能把一片記憶體空間不慎刪掉兩次!
沒寫複製建構函式和過載兩次=,dev過了。vs顯示的是在乙個叫做delete_schalar的cpp檔案中有一行 _free_dbg(block, _unknown_block);的地方中斷。
與類有關的指標小結
1.指向物件的指標 定義形式 類名 指標變數名。使用方式 指標變數名 物件名。2.指向成員函式的指標 定義形式 資料型別名 類名 指標名 參數列列 使用方式 指標變數名 類名 成員函式名 3.指向資料成員的指標 定義形式 資料型別名 指標變數名。使用方式 指標變數名 物件名 資料成員名。4.指向物件...
類與物件(1) 含this指標
1.物件的初步認知 2.類的引入 3.類的定義 class classname 一定要注意後面的分號 class為定義類的關鍵字,classname為類的名字,中為類的主體,注意類定義結束時後面分號。類中的元素稱為類的成員 類中的資料稱為類的屬性或者成員變數 類中的函式稱為類的方法或者成員函式。cl...
指標的有關問題
1.指標和陣列 的區別?答 陣列對應著一塊記憶體區域,而指標是指向一塊記憶體區域。其位址和容量在生命期裡不會改變,只有陣列的內容可以改變 而指標卻不同,它指向的記憶體區域的大小可以隨時改變,而且當指標指向常量字串時,它的內容是不可以被修改的,否則在執行時會報錯。2.指標和引用 的區別?答 1 引用必...