2 回答

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