C 之運算子過載 2

2021-06-19 04:42:01 字數 1135 閱讀 8754

上一節主要講解了c++裡運算子過載函式,在看了單目運算子(++)過載的示例後,也許有些朋友會問這樣的問題。++自增運算子在c或c++中既可以放在運算元之前,也可以放在運算元之後,但是前置和後置的作用又是完全不同的(q前置運算子:先加1,再賦值;後置運算子:先賦值,再加1)。那麼要怎麼過載它們,才可以有效的區分開來呢?今天我就來說說c++中是怎麼處理前置運算子和後置運算子的過載的。以及介紹一下插入運算子(>>)和提取運算子(<

1.在c++裡編譯器是根據運算子過載函式引數表裡是否插入關鍵字int來區分前置還是後置運算。比如:

#include "stdafx.h"

#include class tdpoint//三維座標

tdpoint operator++();//成員函式過載前置運算子++

tdpoint operator++(int);//成員函式過載後置運算子++

friend tdpoint operator++(tdpoint& point);//友元函式過載前置運算子++

friend tdpoint operator++(tdpoint& point,int);//友元函式過載後置運算子++

void showpoint();

};tdpoint tdpoint::operator++()

tdpoint tdpoint::operator++(int)

tdpoint operator++(tdpoint& point)

tdpoint operator++(tdpoint& point,int)

void tdpoint::showpoint()

friend std::ostream&operator<

friend std::istream&operator>>(std::istream& i,complex& com);//友元函式過載插入運算子">>"

};std::ostream&operator<

int main()

{ complex com;

std::cin>>com;

std::cout結果:

C 之運算子過載 2

上一節主要講解了c 裡運算子過載函式,在看了單目運算子 過載的示例後,也許有些朋友會問這樣的問題。自增運算子在c或c 中既可以放在運算元之前,也可以放在運算元之後,但是前置和後置的作用又是完全不同的 q前置運算子 先加1,再賦值 後置運算子 先賦值,再加1 那麼要怎麼過載它們,才可以有效的區分開來呢...

c 運算子過載(2)

語法格式 1 類的內部 函式型別 operator 運算子 形參表 2 類中宣告原型 類外定義 class x 函式型別 x operator 運算子 形參表 說明 可以用 return this 返回 當前物件的值 雙目運算子過載 對雙目運算子而言,成員運算子過載函式的形參表中僅有乙個引數,它作為...

C 運算子過載之過載單目運算子

單目運算子只有乙個運算元,但是其過載方法類似於雙目運算子,在這裡以過載單目運算子 為例,介紹單目運算子的過載 注意 和 運算子有兩種使用方式,前置自增運算子和後置自增運算子,它們的作用是不一樣的,為了區分他們,c 約定,在自增 自減 運算子過載函式中,增加乙個int型別的形參,就是後置自增 自減 運...