1.error: 『std::ostream& lacksdma::operator<<(std::ostream&, const lacksdma&)』 must take exactly one argument|
這種錯誤一般是由於在寫類的友元函式實現時,在函式名前誤加類的解析運算子(::)導致的,如下:
std::ostream& lacksdma::operator<<(std::ostream& os,
const lacksdma &rs)//成員函式的運算子過載一般只有乙個引數,而友元函式才有可能多個
2.在派生類中過載』<<『時,要輸出基類的內容,需要用到強制轉換,將派生類強制轉換成基類,然後利用基類的運算子』<<'過載
std::ostream& operator<<(std::ostream& os,
const lacksdma &rs)
3.在寫派生類的拷貝建構函式時,對基類部分的初始化注意使用列表初始化的方法。
hasdma::hasdma(const hasdma& hs):basedma(hs)//正確
hasdma::hasdma(const hasdma& hs)
4.string類的新學的方法
string label;
label.c_str();//將string物件轉換為c風格字串
5.疑問:一般當類中有動態記憶體分配(dma)時才寫拷貝構造、複製構造、析構函式。沒有(dma)時,自動生成的函式就可以搞定,問題,包含c風格字串陣列的類,自動生成的複製建構函式是怎麼搞定的?
6.私有繼承的唯二重點
使用基類用強制型別轉換:
istream & operator>>(istream & is, student & stu)
//這裡,student私有繼承了string表示學生名稱,輸入學生名稱時使用強制型別轉換
訪問基類及基類方法,用作用域解析運算子(::)
double student::operator(int i)const //arraydb是 valarray
C 學習錯誤彙總
1.pieceworker const long number,const char name pieceworker const long number,const char name,double wageperpiece 0,int quantity 0 第二個建構函式,使用了預設引數,也就是...
學習C (七)除錯和錯誤處理
vs允許在兩種配置下生成應用程式 除錯 預設 和發布。在除錯配置下生成應用程式,並在除錯模式下執行程式時,並不僅是執行編寫好的 除錯程式包含應用程式的符號資訊,所以ide知道執行每行 時發生了什麼。符號資訊意味著跟蹤 例如 未編譯 中使用的變數名,這樣他們就可以匹配已編譯的機器碼應用程式中現有的值,...
匯流排錯誤和段錯誤問題的定位
對現在的很多初級的程式原來說如果遇到 匯流排錯誤 bus error 或者段錯誤 segementation fault core dump 是一件非常折磨人的事,讓人一時間找不到什麼好的方法也不知從何處下手去解決這個問題 和許多人一樣,我很快也遇到了這樣的問題 出現這個錯誤時,錯誤資訊對引起這種事...