亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

您好,有誰幫分析下這句話operator const char *() const!

您好,有誰幫分析下這句話operator const char *() const!

C PHP
手掌心 2021-11-24 15:11:13
有人說是()的重載 是這樣的嗎 誰能幫我具體分析下這句話 說下怎么用 謝謝有人說的是括號的重載() 然后拷貝對象用的 我暈掉了啊 怎么解釋啊 要是能把這個函數補全就最好不過了 謝謝
查看完整描述

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),


查看完整回答
反對 回復 2021-11-29
?
回首憶惘然

TA貢獻1847條經驗 獲得超11個贊

的確是運算符*的重載,返回的是const char的值,且,該函數不改變類的成員變量。

查看完整回答
反對 回復 2021-11-29
  • 2 回答
  • 0 關注
  • 452 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號