上一節主要講解了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型別的形參,就是後置自增 自減 運...