2019 1 13 c 學習錯誤和問題總結

2021-09-08 23:47:13 字數 1156 閱讀 4488

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 是一件非常折磨人的事,讓人一時間找不到什麼好的方法也不知從何處下手去解決這個問題 和許多人一樣,我很快也遇到了這樣的問題 出現這個錯誤時,錯誤資訊對引起這種事...