如果您应该将所有内容都封装在一个类定义中,那么如何在类中使用枚举数据类型呢?例如,我刚刚编写了以下代码...
enum PizzaType {DEEP_DISH, HAND_TOSSED, PAN};
enum PizzaSize {SMALL, MEDIUM, LARGE};
class Pizza {
public:
Pizza();
void setPizzaType(PizzaType type);
PizzaType getPizzaType();
void setPizzaSize(PizzaSize size);
PizzaSize getPizzaSize();
void setToppings(int toppings);
int getToppings();
void outputDescription();
double computePrice();
private:
PizzaType pizzaType;
PizzaSize pizzaSize;
int totalToppings;
};
有没有办法在类本身中包含枚举数据类型,同时仍然允许从外部访问修改器/访问器函数?
最佳答案
是的,你可以这样做:
class Pizza {
public:
enum PizzaType {DEEP_DISH, HAND_TOSSED, PAN};
enum PizzaSize {SMALL, MEDIUM, LARGE};
Pizza();
void setPizzaType(PizzaType type);
PizzaType getPizzaType();
void setPizzaSize(PizzaSize size);
PizzaSize getPizzaSize();
void setToppings(int toppings);
int getToppings();
void outputDescription();
double computePrice();
private:
PizzaType pizzaType;
PizzaSize pizzaSize;
int totalToppings;
};
..然后其他人说,您只需要使用 Pizza“命名空间”即可获得枚举类型:
Pizza::PizzaType tmp = pPizza->getPizzaType();
等等等等
(作为风格说明,当您像这样将枚举放入类中时,我会亲自删除它前面的 Pizza,这样您就有 Pizza::Type 和 Pizza::Size。)
关于c++ - C++ 中的枚举数据类型和类 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/874962/