函数辅导:二元操作符重载的成员函数
来源:优易学  2011-11-26 10:47:59   【优易学:中国教育考试门户网】   资料下载   IT书店
  c++教科书上会说,一般而言,将算术和关系操作符定义成非成员函数。可要是定义成成员函数怎么写?
  以operator+为例。定义成非成员函数情况是:
  X operatoe+(const X& lref,const X& rref);
  那么定义成成员函数是否是这样呢?
  class X {
  public:
  .....
  X operator+(const X& rref);
  .....
  };
  其实不对。成员函数第一个参数的地址是this指针,是X *const this,这是一个指向非常量的指针。跟非成员函数版本并不一样。青年人网提示这样定义,函数的第一个参数在使用时,就不能是常量对象和临时对象了。为了跟非成员函数对应,应该定义成:
  X operator+(const X& rref) const;
  这样,第一个参数的常量性就得到保留,这个时候的this是 const X* const this。

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训