默认的赋值函数operator = ();什么意思?

2024-12-01 07:03:21
推荐回答(1个)
回答1:

这时C++里面的重载运算符,理解起来比较纠结,不过功能很强大,一下是百度百科讲诉的内容,我觉得讲得很到位了。
operator是C++的关键字,它和运算符一起使用,表示一个运算符函数,理解时应将operator=整体上视为一个函数名。这是C++扩展运算符功能的方法,虽然样子古怪,但也可以理解:一方面要使运算符的使用方法与其原来一致,另一方面扩展其功能只能通过函数的方式(c++中,“功能”都是由函数实现的)。
  在symbian os c++中,返回const TUint&给描述符数据的一个指定的单个数据项。使用operator[]在描述符上循环的代价是昂贵的;替代的方法是考虑使用C++算数指针和TDesc::Ptr()。
  operator在.Net中的应用,在.Net中自身的状态机制都有现成的操作集合的范本,像 需要Add +=;需要Rmove -=;让软件开发者在操作的时候更简洁些,使用可重载操作的时候,更“不拘一格”;代码如:
  public class ErrorEntity
  {
  private IList messages = new List();
  private IList codes = new List();
  public static ErrorEntity operator +(ErrorEntity entity, string str)
  {
  entity.messages.Add(str);
  return entity;
  }
  public static ErrorEntity operator +(ErrorEntity entity, int code)
  {
  entity.codes.Add(code);
  return entity;
  }
  public static ErrorEntity operator -(ErrorEntity entity, string str)
  {
  entity.messages.Remove(str);
  return entity;
  }
  public static ErrorEntity operator -(ErrorEntity entity, int code)
  {
  entity.codes.Remove(code);
  return entity;
  }
  public IList Messages { get { return messages; } }
  public IList Codes { get { return codes; } }
  }

我个人经常在类(class)中使用它,通过operator重载运算,可以使得类的对象之间进行像数之间一样的运算,笼统上可以这么理解,operator就是自己定义类的对象之间的加、减、乘、除、求余、自加、自减等等运算操作法则。