国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++之“運算符重載”

2019-11-06 07:50:04
字體:
來源:轉載
供稿:網友

C++可以重載的運算符有:

1.前置++和后置++

2.前置--與后置--

3.+,-,*,/,%運算符

4.>,<,<=,>=,==,!=運算符

5.<<,>>(流提取與流插入)運算符

特別注意:要對類的對象使用運算符,不能重載的運算符:=,& ,逗號運算符)

#include<iostream>using namespace std;class Operate{		friend ostream&  operator<<(ostream &out, const Operate oper1);//<<運算符	friend istream&  operator>>(istream &input, const Operate &oper2);	//>>運算符public:		Operate(int=1 ,int=1);//構造函數	Operate & operator-();//負號運算符	Operate & operator++();//前面++	Operate operator++(int);	//后置++									Operate  operator+(const Operate & oper);//+號運算符	Operate operator-(const Operate &oper);//相減運算法	Operate operator*(const Operate &oper);//相乘運算法	Operate operator/(const Operate &oper);//相除運算法	Operate operator%(const Operate &oper);//相除運算法	bool operator>(const Operate & oper);//>運算符	bool operator<(const Operate & oper);//<運算符	bool operator>=(const Operate & oper);//>=運算符	bool operator<=(const Operate & oper);//<=運算符	bool operator==(const Operate & oper);//==運算符	bool operator!=(const Operate & oper);//!=運算符	int  getX();//獲取X	int  getY();//獲取YPRivate:	int m_iX;	int m_iY;};Operate::Operate(int x, int y){	m_iX = x;	m_iY = y;}//負號運算符Operate& Operate::operator-(){	m_iX = -m_iX;	m_iY = -m_iY;	return *this;}//前面++Operate& Operate::operator++(){	m_iX++;	m_iY++;	return *this;}//后置++Operate Operate::operator++(int){	Operate old(*this);	m_iX++;	m_iY++;	return old;}//+號運算符Operate Operate::operator+(const Operate &oper){	Operate temp;	temp.m_iX = this->m_iX + oper.m_iX;	temp.m_iY = this->m_iY + oper.m_iY;	return temp;}//減運算符Operate Operate::operator-(const Operate &oper){	Operate temp;	temp.m_iX = this->m_iX - oper.m_iX;	temp.m_iY = this->m_iY - oper.m_iY;	return temp;}//乘法運算符Operate Operate::operator*(const Operate &oper){	Operate temp;	temp.m_iX = this->m_iX *oper.m_iX;	temp.m_iY = this->m_iY * oper.m_iY;	return temp;}//除運算符Operate Operate::operator/(const Operate &oper){	Operate temp;	temp.m_iX = this->m_iX / oper.m_iX;	temp.m_iY = this->m_iY / oper.m_iY;	return temp;}//取模運算符Operate Operate:: operator%(const Operate &oper){	Operate temp;	temp.m_iX = this->m_iX %oper.m_iX;	temp.m_iY = this->m_iY % oper.m_iY;	return temp;}//>運算符bool Operate:: operator>(const Operate & oper){	if (this->m_iX > oper.m_iX&&this->m_iY > oper.m_iY)		return true;	else		return false;}//<運算符bool Operate:: operator<(const Operate & oper){	if (this->m_iX <oper.m_iX&&this->m_iY <oper.m_iY)		return true;	else		return false;}//<=運算符bool Operate:: operator<=(const Operate & oper){	if (this->m_iX <=oper.m_iX&&this->m_iY <=oper.m_iY)		return true;	else		return false;}//>=運算符bool Operate:: operator>=(const Operate & oper){	if (this->m_iX >=oper.m_iX&&this->m_iY >=oper.m_iY)		return true;	else		return false;}//==運算符bool Operate:: operator==(const Operate & oper){	if (this->m_iX ==oper.m_iX&&this->m_iY ==oper.m_iY)		return true;	else		return false;}//!=運算符bool Operate:: operator!=(const Operate & oper){	if (this->m_iX !=oper.m_iX&&this->m_iY !=oper.m_iY)		return true;	else		return false;}//<<運算符的友元函數ostream & operator<<(ostream &out, const Operate oper1){	out << oper1.m_iX << "," << oper1.m_iY << endl;	return out;}//>>運算符的友元函數istream &  operator>>(istream &input,  const Operate  &oper2){	input >> oper2.m_iX;	input>> oper2.m_iY;	return input;}int  Operate::getX(){	return m_iX;}int Operate::getY(){	return m_iY;}int main(){//main函數測試 }學會巧妙的使用運算符,在寫很多程序中尤為重要。

運算符重載有助于C++的可擴展性,它是C++最吸引人的特征之一。當運算符重載比完成相同工作的函數調用程序更清晰的時候,請選擇運算符重載!


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 高州市| 三门县| 昌图县| 云梦县| 南京市| 荔浦县| 威海市| 桐柏县| 晋江市| 郯城县| 潞西市| 汕尾市| 曲周县| 金阳县| 兴城市| 安福县| 黎平县| 栾城县| 唐河县| 湖口县| 云梦县| 栾城县| 涿州市| 潍坊市| 上饶县| 桐乡市| 宜春市| 林西县| 嘉义县| 甘泉县| 霍邱县| 天峻县| 信阳市| 九台市| 隆尧县| 宝清县| 乌拉特中旗| 鹤壁市| 许昌市| 华容县| 禹城市|