91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C++中運算符重載的規則語法有哪些

發布時間:2021-06-11 17:09:13 來源:億速云 閱讀:124 作者:Leah 欄目:編程語言

C++中運算符重載的規則語法有哪些,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

首先運算符重載的規則如下:

①、 C++中的運算符除了少數幾個之外,全部可以重載,而且只能重載C++中已有的運算符。 

不能重載的運算符只有五個,它們是:成員運算符“.”、指針運算符“*”、作用域運算符“::”、“sizeof”、條件運算符“?:”。

②、 重載之后運算符的優先級和結合性都不會改變。 

③、 運算符重載是針對新類型數據的實際需要,對原有運算符進行適當的改造。一般來說,重載的功能應當與原有功能相類似,不能改變原運算符的操作對象個數,同時至少要有一個操作對象是自定義類型。 

運算符重載為類的成員函數的一般語法形式為: 

函數類型 operator 運算符(形參表) 
{ 
 函數體; 
}

干脆將一些運算符重新列出下一下:

可以用作重載的運算符:

  • 算術運算符:+,-,*,/,%,++,--;

  • 位操作運算符:&,|,~,^,<<,>>

  • 邏輯運算符:!,&&,||;

  • 比較運算符:<,>,>=,<=,==,!=;

  • 賦值運算符:=,+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=;

  • 其他運算符:[],(),->,,(逗號運算符),new,delete,new[],delete[],->*

下列運算符不允許重載:

.,.*,::,?:(上面也說了的)

下面給例子

Boxoperator+(const Box&, const Box&);

聲明加法運算符用于把兩個 Box 對象相加,返回最終的 Box 對象。大多數的重載運算符可被定義為普通的非成員函數或者被定義為類成員函數。如果我們定義上面的函數為類的非成員函數,那么我們需要為每次操作傳遞兩個參數,如上面所示。

下面給一個比較完整的代碼:

#include <iostream>
using namespace std;
class Person{
public:
  Person(int num) : age(num){}
  /* 類成員函數 */
  int operator+(const Person &temp){
    return (this->age+temp.age);
  }
  int age;
};
/* 非類成員函數 */
int operator-(const Person &a, const Person &b){
  return (a.age-b.age);
}
int main()
{
  Person John(20), Tom(18);
  cout << John+Tom << endl;
  cout << John-Tom << endl;
  return 0;
}

看完上述內容,你們掌握C++中運算符重載的規則語法有哪些的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

c++
AI

贵南县| 布尔津县| 武夷山市| 旅游| 平山县| 新沂市| 琼结县| 河南省| 西畴县| 屏南县| 玛纳斯县| 江津市| 襄垣县| 西藏| 东阳市| 左贡县| 芒康县| 新竹市| 南宁市| 萨嘎县| 古蔺县| 宁城县| 平远县| 大埔县| 安化县| 龙游县| 安陆市| 滨海县| 陆河县| 拜城县| 灵台县| 广州市| 迁西县| 琼中| 阳原县| 宁陕县| 清新县| 海阳市| 甘肃省| 绥棱县| 兴安县|