运算符 =
是否可以为类指针重载。此示例尝试为指针“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 -> Krait' 应该是 '1'。
最佳答案
不,你不能有一个只接受指针作为参数的非成员重载运算符函数:
An operator function shall either be a non-static member function or be a non-member function and have at least one parameter whose type is a class, a reference to a class, an enumeration, or a reference to an enumeration.
关于c++ - 指针运算符可以在 C++ 中重载吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15416840/