C 過載運算子,C 的所有運算子都可以過載嗎?

發布 科技 2024-08-01
2個回答
  1. 匿名使用者2024-01-31

    說起來比較麻煩,但我似乎還是很快明白了。 舉乙個簡單的運算子過載的例子。 兩點的加法和減法是超載的。

    他使使用只能通過坐標進行數字使用的 +,- 運算成為可能。 點 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<<"減去兩分:"

  2. 匿名使用者2024-01-30

    大多數 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。

    這只是乙個不太完整的程式,但已經完成了大量工作,並且操作員過載已經成功。 其他兩個運算元的過載也可以用同樣的方式炮製。

相關回答
8個回答2024-08-01

輸出 a、b、c 和 d 的值,你會發現它們依次是 4、8、9 和 1。 為什麼會這樣? >>>More

11個回答2024-08-01

這是關於在類上使用某些運算子,以您自己定義的方式執行此操作。 >>>More

22個回答2024-08-01

int count=0;

count++;自加法的結果被賦值給 count,所以它是 count 的值變化,你輸出 count++ >>>More

20個回答2024-08-01

1. |它是邏輯運算中的“或”,邏輯關係為:true||False = 真 True ||True = 真 False |True = 真 False |False = 假。 >>>More

11個回答2024-08-01

前兩個程式是 ++i 和 i++ 之間的區別。

i。就是將i加一,然後進行運算,如i = 0,j = 0; j = ++i;最後 i = 1;j = 1;因為 i 加 1 先執行,j 在執行中賦值; >>>More