关闭

C++操作符重载

发表于:2012-11-20 09:33

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:zhy_cheng    来源:51Testing软件测试网采编

  重载操作符是具有特殊名称的函数:保留字operator后接需定义的操作符符号。除了函数调用操作符之外,重载操作符的形参数目(包括成员函数的隐式this指针)与操作符的操作数数目相同。函数调用操作符可以接受任意数目的操作数。

  大多数操作符都可以重载,所以我列出不能重载的操作符,一共有四种:

  ::       .*          .         ?:

  当操作符为类的成员函数时,this指向左操作数。

  下面通过实例说明操作符重载

  源代码下载:点击下载

  1、算术操作符

  定义一个Point类,Point.h头文件:

// Point.h: interface for the Point class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_POINT_H__E8270DD2_C889_4B24_BC82_E154B77FDFCF__INCLUDED_)
#define AFX_POINT_H__E8270DD2_C889_4B24_BC82_E154B77FDFCF__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

class Point 
{
public:
 Point();
 Point(int x,int y);
 virtual ~Point();
 int getX();
 int getY();
 Point operator+(const Point&);
private:
 int x,y;

};

#endif // !defined(AFX_POINT_H__E8270DD2_C889_4B24_BC82_E154B77FDFCF__INCLUDED_)

  Point.cpp源文件:

// Point.cpp: implementation of the Point class.
//
//////////////////////////////////////////////////////////////////////

#include "Point.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Point::Point()
{

}
Point::Point(int x,int y)
{

 this->x=x;
 this->y=y;
}

Point::~Point()
{

}
Point Point::operator +(const Point &pt)
{
 Point p(*this);
 p.x+=pt.x;
 p.y+=pt.y;

 return p;
}

int Point::getX()
{

 return this->x;
}
int Point::getY()
{
 return this->y;
}

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号