引用及操作符的過載

2021-08-04 11:59:58 字數 1488 閱讀 8413

引用是c++的概念,屬於c++編譯器對c的乙個擴充套件

引用可以看做是乙個已經定義的變數的別名

語法:type &b = a;

引用是不能修改的,所以在宣告時必須初始化。並且其還占有記憶體空間。可以簡單的理解type * const name

引用的原理我們不需要理解,只要把引用可以看做是乙個已經定義的變數的別名

當被呼叫的函式當左值的時候,函式的返回值必須為引用

引用方面未完待續。

操作符的過載

過載運算子函式可以對運算子作出新的解釋,但原有基本語義不變:

1)不改變運算子的優先順序

2)不改變運算子的結合性

3)不改變運算子所需要的運算元 

4)不能建立新的運算子

運算子的過載常見的有兩種:

1)一元運算子的過載

2) 二元運算子的過載

先來看看一元操作符的過載

社會我浩哥,人狠話不多,也不多說,直接上**演示:

#include using namespace std;

/*一元運算子的過載我們從以下方面講解:

1 全域性函式實現操作符過載

1) 操作區前置

2) 操作符後置

2 成員函式實現操作符過載

1) 操作區前置

2) 操作符後置

*/class student ;

student::student(int grade, char * name)

student::~student()

//成員函式之前置的業務實現

student & student::operator ++ ()

//全域性函式之前置

//注意引數的形式是固定的沒如果不折磨寫的話會執行類的拷貝建構函式

//為了效率一切都是值得的,因為我們是c++;

student & operator ++ (student& s)

void main()

上面**只對前置實現了,後置的原來也是如此,在這我就不老和尚念經了,太囉嗦。

下面**演示的是雙元運算子的過載:

#include using namespace std;

/*雙元運算子的過載有兩種常見的方式

1 全域性函式過載

2 成員函式過載

*/class student

;student::student(int grade, char * name)

student::~student()

student student::operator + (student& s2)

//實現操作符過載的全域性函式

student operator + (student& s1, student& s2)

void main()

好了,基本**我們都演示清楚了,下面我們來討論討論運算子的過載有什麼現實意義了:

未完待續!!~!

操作符過載

ifndef vertex h define vertex h class vertex vertex float px float py float pz vertex operator const vertex p vertex operator const vertex p void oper...

操作符過載

1.操作符是靜態方法,返回值表示操作結果,引數是運算元。2.操作符過載需要在過載的操作符前加上operator關鍵字。3.最好少用操作符過載,只有在意義明晰而且與內建類的操作一致時才適合使用,以免造成混亂。以建立的分數類 fraction 中的 為例,該分數類中有兩個int型的私有屬性 分子 num...

過載操作符

1.過載操作符1.1 限制過載操作符具有以下限制 1 只有c 預定義的操作符集中的操作符才可以被過載 2 對於內建型別的操作符,它的預定義不能被改變,應不能為內建型別過載操作符,如,不能改變int型的操作符 的含義 3 也不能為內建的資料型別定義其它的操作符 4 只能過載類型別或列舉型別的操作符 5...