2 回答

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個贊
如果是重載*的話,那應(yīng)該寫成:const char operator * () const而不是樓主所寫的那樣,而且即使是這樣寫那也不正確的,因?yàn)檫\(yùn)算符重載中有幾個運(yùn)算符的返回值是有格式的(約定),如operator * 在重載時通常返回值是classType&或者const classType& 。
operator const char*() const是類型轉(zhuǎn)換函數(shù)的定義,即該類型可以自動轉(zhuǎn)換為const char*類型。至于最后一個const,那個大家都知道是對類成員的限制(不允許更改對象的狀態(tài))
雖然我不知道你的類是什么,但是我可以給你舉一個簡單的例子說明一下問題。比如我們現(xiàn)在自定一個一個整型(MyInt),它允許在需要使用C++語言中的int類型時將MyInt類型轉(zhuǎn)換為int類型:
class MyInt {
public:
operator int () const;
private:
int elem;
};
MyInt::operator int () const
{
return elem;
}
就可以在需要使用int類型時使用MyInt。
還有你需要記住,C++中沒有返回類型的函數(shù)有3個,構(gòu)造函數(shù)、析構(gòu)函數(shù)、類型轉(zhuǎn)換函數(shù)。前兩個是不寫返回類型函數(shù)實(shí)現(xiàn)中也不允許出現(xiàn)return語句(所以不同于void),
- 2 回答
- 0 關(guān)注
- 460 瀏覽
添加回答
舉報(bào)