小编Ale*_*lex的帖子

重载超类中的运算符,但子类声称它已经定义

我正在学习C++,我对继承和运算符重载的工作方式有点不清楚,所以我很可能在这里做些傻事.

我有一个基类,它定义了一些表示测量单位的基本操作:

#pragma once
class UnitOfMeasure
{
public:
    UnitOfMeasure(void) : mAmount(0) {}
    UnitOfMeasure(double amount) : mAmount(amount) { }
    ~UnitOfMeasure() {}

    void SetAmount(double amount) { mAmount = amount; }

    UnitOfMeasure& operator+=(const UnitOfMeasure& rhs)
    {
        mAmount += rhs.mAmount;
        return *this;
    }

    friend bool operator==(const UnitOfMeasure&, const UnitOfMeasure&);

protected:
    double mAmount;
};

bool operator==(const UnitOfMeasure& lhs, const UnitOfMeasure &rhs)
{
    return rhs.mAmount == lhs.mAmount;
}
Run Code Online (Sandbox Code Playgroud)

子类然后实现这样的特定转换:

#pragma once
#include "UnitOfMeasure.h"

class Temperature : public UnitOfMeasure
{
public:
    enum TemperatureUnit { CELSIUS, FAHRENHEIT }; …
Run Code Online (Sandbox Code Playgroud)

c++ visual-c++

2
推荐指数
1
解决办法
760
查看次数

标签 统计

c++ ×1

visual-c++ ×1