C++中的运算符重载问题


//VPoint.h文件
#pragma once

class VPoint
{
public:
	VPoint(void);
	VPoint(int x,int y,int z);

	//运算符重载 

	//重载 + -
	friend VPoint operator + (const VPoint& pt1, const VPoint& pt2);
	friend VPoint operator - (const VPoint& pt1, const VPoint& pt2);

	//重载==  !=
	bool operator == (const VPoint& pt1 );
	bool operator != (const VPoint& pt1 );

	//重载输入输出
	friend std::ostream& operator << (std::ostream& os, const VPoint& pt);
	friend std::istream& operator >> (std::istream& is, const VPoint& pt);

	//+= -=
	VPoint& operator += (const VPoint& pt);
	VPoint& operator -= (const VPoint& pt);
public:
	~VPoint(void);

//成员变量
private:
	int m_X;
	int m_Y;
	int m_Z;
};

//VPoint.cpp文件
#include <iostream>
#include "VPoint.h"
using namespace std;
VPoint::VPoint(void)
{
}

VPoint::~VPoint(void)
{
}

VPoint::VPoint(int x,int y,int z)
{
	this->m_X = x;
	this->m_Y = y;
	this->m_Z = z;
}

//重载 + -
VPoint operator + (const VPoint& pt1, const VPoint& pt2)
{

	VPoint pt(pt1);
	pt += pt2;
	return pt ;
}

VPoint operator - (const VPoint& pt1, const VPoint& pt2)
{
	VPoint pt(pt1);

	pt -= pt2;
	return pt;
}

//重载==  !=
bool VPoint::operator == (const VPoint& pt1)
{
	return( this->m_X == pt1.m_X && this->m_Y == pt1.m_Y && this->m_Z == pt1.m_Z);
}

bool VPoint::operator != (const VPoint& pt1)
{
	return !(*this == pt1);
}

//重载输入输出
std::ostream& operator << (std::ostream& os, const VPoint& pt)
{
	os << pt.m_X <<"\t" << pt.m_Y << "\t" <<pt.m_Z ;
	return os;
}



//+= -=
VPoint& VPoint::operator += (const VPoint& pt)
{
	return VPoint( this->m_X += pt.m_X , this->m_Y += pt.m_Y , this->m_Z += pt.m_Z);
}
VPoint& VPoint::operator -= (const VPoint& pt)
{
	return VPoint( this->m_X -= pt.m_X , this->m_Y -= pt.m_Y , this->m_Z -= pt.m_Z);
}

//operator.cpp文件
#include <iostream>
#include "VPoint.h"
using namespace std;
//立体坐标

int main()
{

	VPoint pt1(1,2,3);
	VPoint pt2(2,3,4);
	VPoint pt3(10,20,30);

	pt1 += pt2;

	cout<<pt1<<endl;

	cin.get();
	cin.get();
	return 0;

}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值