我是C++中的构造函数和OOP的新手,遇到以下问题。
我尝试进行以下类(class),但显然枚举器有问题。
我也想知道是否可以将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"
谢谢!

最佳答案

这行:

enum Currency_ { EUR, USD };
不是在声明成员变量,而是在声明类型。由于没有变量,因此无法初始化变量。您需要将其分为两行:
enum Currency_ { EUR, USD };
Currency_ Currency_val;

10-04 18:35