-
說起來比較麻煩,但我似乎還是很快明白了。 舉乙個簡單的運算子過載的例子。 兩點的加法和減法是超載的。
他使使用只能通過坐標進行數字使用的 +,- 運算成為可能。 點 x(1,1)+y(2,2)=z(3,3)以下是成功除錯的示例。
#include
using namespace std;
class lyhdian
double x;
double y;
public:
lyhdian(double,double);
lyhdian operator +(lyhdian&);
lyhdian operator -(lyhdian&);
void show();
lyhdian::lyhdian(double a,double b)
x=a;y=b;
lyhdian lyhdian::operator +(lyhdian& a1)
double c=x+;
double d=y+;
lyhdian result(c,d);
return result;
lyhdian lyhdian::operator -(lyhdian& a1)
double c=;
double d=;
lyhdian result(c,d);
return result;
void lyhdian::show()
cout<<"該點的坐標為:"<>x>>y;
lyhdian aa(x,y);
cout<<"請輸入另乙個點的坐標:"<>x>>y;
lyhdian bb(x,y);
cout<<"在操作中新增了兩點:"cout<<"減去兩分:"
-
大多數 C++ 運算子都可以過載。 運算子過載是 C++ 多型性的一種形式。 運算子過載將過載的概念擴充套件到運算子,允許 C++ 運算子被賦予多種含義。
單目操作員過載:
單目運算子只有乙個運算元,例如 ! a、-b、&c、*p 以及最常用的 ++i 和 --i 等。 由於單目運算子只有乙個運算元,因此運算子僅使用乙個引數過載函式,如果運算子將函式作為成員函式過載,也可以省略該引數。
下面以自動增量運算元“++”為例,介紹單目運算元的過載。
示例]有乙個時間類,它包含資料成員分鐘(分鐘)和秒(秒),模擬秒錶,每次走一秒,整整 60 秒前進到一分鐘,秒從 0 開始。需要以分鐘和秒為單位的值輸出。
如您所見,運算子“++”在程式中已被過載,因此它可以用於時間類的物件。 “+ and” -- 運算子可以以兩種方式使用,即前增運算子和後自動增量運算子。
鑑於“++ and”的特性,C++ 常規地在自動增量(自遞減)運算元過載函式中新增乙個 int 型別形式引數,即後遞增(自遞減)運算元函式。
雙目操作員過載:
雙目運算子或二進位運算子是 C++ 中最常用的運算子。 雙目運算元有兩個運算元,通常在運算元的左右兩側,如3+5、a=b、i<10等。 當過載雙目運算元時,不言而喻,函式中應該有兩個引數。
Example] 定義了乙個字串類字串來儲存長度不定的字串,並過載運算子 “==”, “and >” 以比較兩個等於、小於和大於的字串。
有了這個基礎,新增其他必要的內容。 現在新增運算子過載的部分。 為了便於編寫和除錯,首先過載運算子“>”程式,如下所示:
程式的結果是 1。
這只是乙個不太完整的程式,但已經完成了大量工作,並且操作員過載已經成功。 其他兩個運算元的過載也可以用同樣的方式炮製。
int count=0;
count++;自加法的結果被賦值給 count,所以它是 count 的值變化,你輸出 count++ >>>More
1. |它是邏輯運算中的“或”,邏輯關係為:true||False = 真 True ||True = 真 False |True = 真 False |False = 假。 >>>More
前兩個程式是 ++i 和 i++ 之間的區別。
i。就是將i加一,然後進行運算,如i = 0,j = 0; j = ++i;最後 i = 1;j = 1;因為 i 加 1 先執行,j 在執行中賦值; >>>More