0

运算符=是否可以为类指针重载。此示例尝试为指针“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'。

4

1 回答 1

5

不,您不能有一个仅将指针作为其参数的非成员重载运算符函数:

操作符函数要么是非静态成员函数,要么是非成员函数,并且至少有一个类型为类、类引用、枚举或枚举引用的参数。

于 2013-03-14T18:04:47.000 回答