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

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于賦值運算重載是否正確的問題?

#include?"Dollar.h"

Dollar?&?Dollar::operator?+?(const?Dollar?&?doll)
{
????Dollar?dollarRes;

????int?c?=?doll.cent?+?cent;
????dollarRes.cent?=?c?%?100;

????int?d?=?doll.dollar?+?dollar;
????dollarRes.dollar?=?d?+?c?/?100;

????return?dollarRes;
}

@Redknot,老師, 這個賦值運算符重載內部創建的是一個棧變量,最后將這個棧變量的引用返回了,但是棧變量會隨著函數的結束而銷毀,那返回的這個對象引用是不是有問題?這樣寫是對的嗎?

正在回答

1 回答

是的,這樣你返回了一個臨時變量的引用也就是地址值給到外界,這樣外部其實還能操控你這個地址,但是地址指向的數據已經被銷毀了。一般來說,返回引用或者是常引用通常是返回類的私有成員變量,用于提供外部接口,特別的例如Get函數,const Data& Class::GetData() const { return m_data; };這種情況以常引用的方式返回了一個Data變量,同時函數為常函數。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

關于賦值運算重載是否正確的問題?

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

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

公眾號

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