【发布时间】:2020-10-28 05:10:39
【问题描述】:
我对 C++ 中的构造函数和 OOP 非常陌生,遇到了以下问题。 我尝试制作以下课程,但显然枚举器有问题。 另外我想知道是否可以以某种方式将 EUR 设置为默认选项。
class Amount
{
// Todo 6.2
// Implement class Amount
protected:
float Netto_;
float Brutto_;
enum tax_ { tax1 , tax2};
enum Currency_ { EUR, USD };
const float eur_to_usd = 1.13;
const float usd_to_eur = 0.89;
std::string Description_;
public:
Amount(std::string Description , float Brutto, Currency_ Currency, tax_ taxtype) : Brutto_{Brutto} , Description_{Description}, Currency_{Currency}, tax_{taxtype} {}
};
我收到以下错误:
"Currency_" is not a nonstatic data member or base class of class "Amount"
谢谢!
【问题讨论】:
-
错误信息有什么不清楚的地方?
Currency_是一种类型。不是成员,例如Netto_。此类错误也不限于enums,但如果是class,您也会得到它。 -
您声明了
enum类型,但没有这些类型的成员 -
@Necklondon 在类中定义枚举没有错。
-
如果看不到
Currency_类型,传入Currency参数很烦人。只有这个类或派生类才能在不玩傻游戏的情况下进行构造。 -
不相关,
eur_to_usd和usd_to_eur应该是static成员
标签: c++ oop constructor enumerator