Каковы плюсы и минусы использования вложенных общедоступных классов С++ и перечислений? Например, предположим, что у вас есть класс с именем printer
, и этот класс также хранит информацию о выходных лотках, вы могли бы:
class printer
{
public:
std::string name_;
enum TYPE
{
TYPE_LOCAL,
TYPE_NETWORK,
};
class output_tray
{
...
};
...
};
printer prn;
printer::TYPE type;
printer::output_tray tray;
В качестве альтернативы:
class printer
{
public:
std::string name_;
...
};
enum PRINTER_TYPE
{
PRINTER_TYPE_LOCAL,
PRINTER_TYPE_NETWORK,
};
class output_tray
{
...
};
printer prn;
PRINTER_TYPE type;
output_tray tray;
Я вижу преимущества вложенности частных enums/classes, но когда дело доходит до публичных, офис разделяется - кажется, это скорее выбор стиля.
Итак, что вы предпочитаете и почему?