編譯錯誤:
將'const ***'作為'***'的'this'實參時丟棄了型別限定。
這樣的錯誤一般是因為const限定符的問題。如:
#include
#include
#include
#include
using namespace std;
class a
string tostring()
bool operator<(const a &rhs) const //為了能使用set};
void output(const string &str)
在使用g++編譯時會出現如下錯誤:
test.cpp: in function 『int main()』:
test.cpp:28: 錯誤:將 『const a』 作為 『std::string a::tostring()』 的 『this』 實參時丟棄了型別限定
出現錯誤的原因是因為stl在指向set的內容時為const型別(是不可更改的),所以strset.begin()其實對應的是乙個const a型別,而tostring()方法不能保證這strset.begin()所指向的內容不被改變。因此,應當將此tostring()方法顯式宣告為const方法,通知編譯器此方法不會改變a的內容。修改後的class a:
class a
string tostring() const
bool operator<(const a &rhs)const
};
傳遞實參時丟棄型別限定的原因
編譯錯誤 將 const 作為 的 this 實參時丟棄了型別限定。這樣的錯誤一般是因為const限定符的問題。如 include include include include using namespace std class a string tostring bool operator co...
父類為形參,子類為實參時的注意事項
include using namespace std class fish class carp public fish void showinf fish fish 直接進行普通的值傳遞 int main 當函式引數是父類物件且傳入的引數是子類物件,然而我們用的是普通值傳遞時,子類物件僅僅將自己...
面試時,我說謊了
我經常被一些朋友問及以下問題 面試時我說謊了,會對面試結果有影響嗎?面試時,我能說謊嗎?面試時怎麼說謊?有面試說謊秘籍嗎?分享一下啊!我的回答是 面試時說謊與否要 講原則 看情況 講原則 在是否說謊這個問題上乙個比較主要的原則就是 1 永遠不要低估面試官的智商 我就多次被應聘者認為智商低於正常水平,...