我正在学习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)