istream& operator>>(istream& in, sales_item& s)
double price;
in >> s.isbn >> s.units_sold >> price;
// check that the inputs succeeded
if (in)
s.revenue = s.units_sold * price;
else
s = sales_item(); // input failed: reset object to default state
return in;}
when designing an input operator, it is important to decide
what to do about error-recovery, if anything.
因為一旦你過載輸入操作符的時候,給類的資料成員賦值的話,那麼有可能3個資料成員只賦值成功了兩個,那麼這個時候,這個物件就處在乙個錯誤的狀態,所以關於輸入的錯誤,應該注意處理。輸入的資料是不是我們想要的格式,這個也是需要檢查的。
C Primer 過載操作符與轉換
1.不能通過連線其他合法符號來建立任何新的操作符,例如試圖定義乙個operator 操作符以提供求冪操作是非法的 用於內建型別的操作符其含義不能改變,例如 int operator int,int 就是非法的 也不能為任何內建型別定義額外的新的操作符,例如不能定義接受兩個陣列型別運算元的operat...
操作符過載
ifndef vertex h define vertex h class vertex vertex float px float py float pz vertex operator const vertex p vertex operator const vertex p void oper...
操作符過載
1.操作符是靜態方法,返回值表示操作結果,引數是運算元。2.操作符過載需要在過載的操作符前加上operator關鍵字。3.最好少用操作符過載,只有在意義明晰而且與內建類的操作一致時才適合使用,以免造成混亂。以建立的分數類 fraction 中的 為例,該分數類中有兩個int型的私有屬性 分子 num...