运算符=
是否可以为类指针重载。此示例尝试为指针'Cutie *'重载'operator =':
class Cutie
{
public:
int Krait;
Cutie() : Krait(0)
{
}
};
Cutie* operator = (Cutie* p, Cutie* q)
{
if(p == 0)
{
if(0 < Krait)
Krait--;
}
else
Krait++;
}
上述定义有错误。我正在寻找一个计算指针分配的定义:
Cutie c;
Cutie* p = 0;
p = &c;
现在'p - &gt; Krait'应该是'1'。
答案 0 :(得分:5)
不,你不能拥有一个只使用指针作为参数的非成员重载操作符函数:
运算符函数应该是非静态成员函数或者是非成员函数,并且至少有一个参数,其类型是类,对类的引用,枚举或对枚举的引用。