程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 第14章 重載操作符與轉換(3)

第14章 重載操作符與轉換(3)

編輯:C++入門知識

14.3 算術操作符和關系操作符
一般而言,將算術和關系操作符定義為非成員函數。
為了與內置操作符保持一致,加法返回一個右值,而不是一個引用。

friend Class1 operator+(const Class1 &c1, const Class1 &c2); 

Class1 operator+(const Class1 &c1, const Class1 &c2) 

    Class1 c(100); 
    c.counter = c1.counter+c2.counter; 
    return c; 


Class1 c1(200); 
Class1 c2(300); 
cout << c1 + c2  << endl; 
既定義了算術操作符又定義了相關復合賦值操作符的類,一般應使用復合賦值實現算術操作符。
14.3.1 相等操作符

friend bool operator==(const Class1 &c1, const Class1 &c2); 

inline bool operator==(const Class1 &c1, const Class1 &c2) 

    return c1.counter == c2.counter; 


Class1 c1(200); 
Class1 c2(300); 
bool i = c1 == c2; 
cout << i  << endl; 
定義了operator==的類更容易與標准庫一起使用。有些算法,如find,默認使用==操作符,如果類定義了==,則這些算法可以無需任何特殊處理而用於該類類型。
14.3.2 關系操作符
關聯容器以及某些算法,使用默認<操作符。一般而言,關系操作符,諸如相等操作符,應定義為非成員函數。

摘自 xufei96的專欄

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved