欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中運算符重載的規(guī)則語法實例

 更新時間:2018年12月14日 09:20:42   作者:Struggler09  
今天小編就為大家分享一篇關(guān)于C++中運算符重載的規(guī)則語法實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

運算符重載,就是對已有的運算符重新進(jìn)行定義,賦予其另一種功能,以適應(yīng)不同的數(shù)據(jù)類型。

之前就知道運算符的重載就是將它重新定義,給它新的功能,為的式符合程序員的要求,一個例子就是,要將坐標(biāo)相加,但是電腦不知道怎么相加,于是聰明的人就賦予了“+”新的定義。然而一些嚴(yán)格意義上的用法還不是很清楚?,F(xiàn)在就在這總結(jié)一下。

首先運算符重載的規(guī)則如下:

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

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

②、 重載之后運算符的優(yōu)先級和結(jié)合性都不會改變。 

③、 運算符重載是針對新類型數(shù)據(jù)的實際需要,對原有運算符進(jìn)行適當(dāng)?shù)母脑?。一般來說,重載的功能應(yīng)當(dāng)與原有功能相類似,不能改變原運算符的操作對象個數(shù),同時至少要有一個操作對象是自定義類型。 

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

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

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

可以用作重載的運算符:

  • 算術(shù)運算符:+,-,*,/,%,++,--;
  • 位操作運算符:&,|,~,^,<<,>>
  • 邏輯運算符:!,&&,||;
  • 比較運算符:<,>,>=,<=,==,!=;
  • 賦值運算符:=,+=,-=,*=,/=,%=,&=,|=,^=,<<=,>>=;
  • 其他運算符:[],(),->,,(逗號運算符),new,delete,new[],delete[],->*

下列運算符不允許重載:

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

下面給例子

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

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

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

#include <iostream>
using namespace std;
class Person{
public:
  Person(int num) : age(num){}
  /* 類成員函數(shù) */
  int operator+(const Person &temp){
    return (this->age+temp.age);
  }
  int age;
};
/* 非類成員函數(shù) */
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;
}

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,謝謝大家對腳本之家的支持。如果你想了解更多相關(guān)內(nèi)容請查看下面相關(guān)鏈接

相關(guān)文章

  • C++入門之實現(xiàn)十步萬度游戲

    C++入門之實現(xiàn)十步萬度游戲

    這篇文章主要介紹了C++入門實現(xiàn)十步萬度游戲,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • 解析如何利用switch語句進(jìn)行字符統(tǒng)計

    解析如何利用switch語句進(jìn)行字符統(tǒng)計

    本篇文章是對如何利用switch語句進(jìn)行字符統(tǒng)計的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • 淺談C#中List<T>對象的深度拷貝問題

    淺談C#中List<T>對象的深度拷貝問題

    下面小編就為大家?guī)硪黄獪\談C#中List<T>對象的深度拷貝問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • 深入了解C語言結(jié)構(gòu)化的程序設(shè)計

    深入了解C語言結(jié)構(gòu)化的程序設(shè)計

    這篇文章主要介紹了C語言編程中程序的一些基本的編寫優(yōu)化技巧,文中涉及到了基礎(chǔ)的C程序內(nèi)存方面的知識,非常推薦!需要的朋友可以參考下
    2021-07-07
  • 基于matlab實現(xiàn)DCT數(shù)字水印嵌入與提取

    基于matlab實現(xiàn)DCT數(shù)字水印嵌入與提取

    數(shù)字水印技術(shù)是將一些標(biāo)識信息直接嵌入數(shù)字載體當(dāng)中,?或間接表示在信號載體中,?且不影響原載體的使用價值。本文主要為大家介紹了基于matlab如何實現(xiàn)數(shù)字水印的嵌入與提取,感興趣的可以學(xué)習(xí)一下
    2022-01-01
  • C語言快速實現(xiàn)掃雷小游戲

    C語言快速實現(xiàn)掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了C語言實現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • C語言中const和define的區(qū)別你了解嘛

    C語言中const和define的區(qū)別你了解嘛

    這篇文章主要為大家詳細(xì)介紹了C語言中const和define的區(qū)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 詳解C++實現(xiàn)鏈表的排序算法

    詳解C++實現(xiàn)鏈表的排序算法

    鏈表排序思想和數(shù)組排序類似,區(qū)別就是數(shù)組遍歷容易,數(shù)據(jù)交換也容易;鏈表(單項鏈表)只能一個方向遍歷,不能逆序遍歷,且不能隨機(jī)訪問,所以排序比較麻煩。本文將詳細(xì)介紹鏈表排序的方式,并且用C++來實現(xiàn)
    2021-06-06
  • C++中的類擴(kuò)展之繼承和組合詳解

    C++中的類擴(kuò)展之繼承和組合詳解

    在C++中,類擴(kuò)展可以通過繼承、組合和裝飾模式實現(xiàn)。繼承可以實現(xiàn)對已有類的修改和擴(kuò)展,組合可以增加新的功能,裝飾模式則能夠在不改變原類的情況下為其添加新的功能。這些技術(shù)在C++程序設(shè)計中應(yīng)用廣泛,提高了程序的可擴(kuò)展性和可維護(hù)性
    2023-04-04
  • C語言格式化輸入輸出函數(shù)詳解

    C語言格式化輸入輸出函數(shù)詳解

    本文給大家分享的是c語言中2個格式化輸入輸出的函數(shù)printf()和scanf()的使用方法的說明及其組合方式的表單,非常詳細(xì),推薦給大家,希望對大家能夠有所幫助。
    2015-03-03

最新評論