标签:
运算符重载就是对已有的运算符赋予多重含义,使同一个运算符作用于不同类型的数据时导致不同的行为。
实质: 函数重载。在实现过程中,首先把制定的运算表达式转化为对运算符函数的调用,将运算对象转化为运算符函数的实参,然后根据是惨的类型来确定需要调用的函数,这个过程是在编译过程中完成的。
运算符重载的形式有两种,即重载为类的非静态成员函数和重载为非成员函数。
运算符重载为类的成员函数的一般语法形式为:
返回类型 operator 运算符(形参表)
{
函数体
}
运算符重载为非成员函数的一般语法形式为:
返回类型 operator 运算符(形参表)
{
函数体
}
返回类型指定了重载运算符的返回值类型 ,也就是运算结果类型;
operator 是定义运算符重载函数的关键字;
运算符即是要重载的运算符名称
形参表中给出重载运算符所需要的参数和类型
提示:
当以非成员函数形式重载运算符时,有事需要访问运算符参数所涉及类的私有成员,这时可以把该函数声明为类的友元函数。
当运算符重载为类的成员函数,函数参数的个数比原来的操作个数要少一个(后置“++”,“–”除外);当重载为非成员函数时,参数个数与原操作个数相同。
原因是 ,重载为类的成员函数时,第一个操作数会被作为函数调用的目的对象,一次无须出现在参数表中,函数体可以直接访问第一个操作数的成员;而重载为非成员函数时,运算符的所有操作数必须显示通过参数传递。
标签:
原文地址:http://blog.csdn.net/stubbornaccepted/article/details/51356627