⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 18-1.txt

📁 《C/C++完美演绎》源代码
💻 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 + -