1

我正在尝试制作一个允许我将整数添加到我的一个类的运算符,但我遇到了如下问题。

    struct Base
{
    //Will have value of zero
};

struct Derived : public Base
{
    int value_;
};

int & operator+=(int & num, Base & b);
int & operator+=(int & num, Derived & d);

随着运营商的实施

int & operator+=(int & num, Base & b)
{
    return num;
}

int & operator+=(int & num, Derived & d)
{
    num += d.value_;
    return num;
}

所以我有一个向量,我试图遍历它并将所有值添加到一个整数。但是,即使是 Derived 类型的那些也不会改变总和。

如何使运算符重载多态?

4

1 回答 1

0

这是一个很好的博士。dobbs 文章为您的问题提供了 3 个解决方案http://drdobbs.com/cpp/200001978 其中之一,我也在想同样的事情,就是您可以将您的运算符依赖于虚拟成员函数或辅助函数。

于 2012-04-06T21:15:42.960 回答