Каковы плюсы и минусы использования вложенных общедоступных классов и перечислений C ++? Например, предположим, что у вас есть класс с именем 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;
Я вижу преимущества вложения частных перечислений / классов, но когда дело доходит до общедоступных, офис делится - кажется, это больше выбор стиля.
Итак, что вы предпочитаете и почему?