📄 18-1.txt
字号:
/* 范例:18-1 */
#include <iostream.h>
class Point
{
/* 将+运算符的重载函数,设为类Point的友元 */
friend Point operator+( Point& pt, int nOffset );
/* 将+运算符的重载函数,设为类Point的友元 */
friend Point operator+( int nOffset, Point& pt );
public:
Point( unsigned x, unsigned y ) { _x = x; _y = y; }
void Print()
{
cout << "Point(" << _x << ", " << _y << ")" << endl;
}
private:
unsigned _x;
unsigned _y;
};
Point operator+( Point& pt, int nOffset )
{
Point ptTemp = pt;
/* ptTemp._x可直接存取类Point的private区数据成员_x */
ptTemp._x += nOffset;
/* ptTemp._y可直接存取类Point的private区数据成员_y */
ptTemp._y += nOffset;
return ptTemp;
}
Point operator+( int nOffset, Point& pt )
{
Point ptTemp = pt;
/* ptTemp._x可直接存取类Point的private区数据成员_x */
ptTemp._x += nOffset;
/* ptTemp._y可直接存取类Point的private区数据成员_y */
ptTemp._y += nOffset;
return ptTemp;
}
void main()
{
Point pt( 10, 20 );
pt.Print();
pt = pt + 3;
pt.Print();
pt = 3 + pt;
pt.Print();
getchar();
}
程序执行结果:
Point(10, 20)
Point(13, 23)
Point(16, 26)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -