運算子過載例項詳解(原創)
1.哪些運算子可以用作過載?
幾乎所有的運算子都可用作過載。具體包含:
算術運算子:=,-,*,/,%,++,--
位操作運算子:—,|,~,^,<<,>>;
邏輯運算子:!&&,||;
比較運算子:>,<,>=,<=,==,!=
賦值運算子:=,+=,- = ,*=,%=,\=^=,<<=,>>=;
其他運算子:[ ],()->, ',new,delete,new,delete,->* .
運算子有兩種過載形式:成員函式形式和友元函式形式。這兩種形式都可訪問類中的私有成員。
以下為例項說明,請仔細閱讀哦,對你很有用。(這可都是我在dev c++上執行過的,保證正確!!!)
一元運算子
#include
#include
using namespace std;
class integer
public:
integer(long n=56):i(n){}
friend const integer &operator + (const integer &a);
friend const integer operator - (const integer &a);
friend const integer operator ~ (const integer &a);
friend integer *operator & ( integer &a);
}; const integer &operator +(const integer &a)
plural(long n,long m)
friend const plural operator + (const plural &l,const plural &r);
friend const plural operator - (const plural &l,const plural &r);
friend const plural operator * (const plural &l,const plural &r);
// friend const integer operator / (const integer &l,const integer &r);
friend void print(const plural &p);
}; const plural operator +(const plural &l,const plural &r)
const plural operator -(const plural &l,const plural &r)
const plural operator *(const plural &l,const plural &r)
// const plural operator /(const plural &l,const plural &r)
void print(const plural &i)
int main()
賦值運算子過載為成員函式的例子
有的雙目運算子還是過載為成員函式為好,例如,賦值運算子 =
#include
#include
using namespace std;
class a
a(int i,int j)
a(a &p)
a& operator =(a &p);
int getx()
int gety()
private:
int x,y;
};a& a::operator =(a &p)
int main(int argc, char *argv)
counter operator ++();
counter operator ++(int);
void print()
執行該程式輸出的結果:816
過載函式呼叫運算子
可以將函式呼叫運算子()看成是下標運算子[ ]的擴充套件。函式呼叫運算子可以帶0個至多個引數。
#include
#include
using namespace std;
class counter;
double counter::operator ()(double x,double y) const
int main(int argc, char *argv)
{counter c;
cout《執行該程式輸出如下結果:
14.3
說明:f(1.5,.2.2)被編譯為f.operator()(1.5,2.2)
const,這是因為過載函式不改變被操作物件的狀態。
XPath 初學者進門教程 XPath 運算子
xpath 表示式可返回節點集 字串 邏輯值以及數字。下面列出了可用在 xpath 表示式中的運算子 運算子描寫 例項返回值 盤算兩個節點集 book cd 返回所有帶有 book 和 ck 元素的節點集 加法 6 410 減法6 42 乘法6 4 24div 除法8 div 42 即是price ...
C 運算子過載例項
以下示例中定義了乙個class test,過載了 等符號 include include using namespace std class test test const int a v a test const test t1 v t1.v 以下過載小於號 比較兩個物件的大小 bool oper...
C 例項 運算子過載
文章 c 例項 運算子過載 一 兩個複數的加法運算 二 複數的加減乘除運算 三 複數與標準型資料之間的運算,順序任意 四 兩個矩陣間的運算與輸出 行列任意 五 複數與double型資料的運算 六 不同類物件的轉換 一 定義一複數類complex,過載運算子 用於複數的加法運算,將運算子過載函式定義為...