繁体   English   中英

二元运算符重载和多态

[英]Binary operator overloading and polymorpism

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

    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;
}

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

如何使运算符重载多态?

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM