2 回答

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

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
的確是運(yùn)算符*的重載,返回的是const char的值,且,該函數(shù)不改變類的成員變量。
- 2 回答
- 0 關(guān)注
- 444 瀏覽
添加回答
舉報(bào)