我是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;