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