Говорят, что в файле foo.h у меня есть:Определить перечисление в классе или в файле?
enum bar {
ONE = 1,
TWO
};
class foo {
bar m_bar;
public:
void setBar(bar arg){ m_bar = arg; }
bar getBar() const { return m_bar; }
};
В моем текущем проекте, единственным стойким bar
переменная будет m_bar
. Но у меня будут другие функции, кроме foo
, которые содержат bar
, например, GUI-класс, который создает локальный bar
и передает его setBar
.
Итак, вот мой вопрос, есть ли какое-либо обоснование для определения bar
публично внутри foo
против только внутри класса, где он находится?
целесообразно поместить перечисление в охватываемое пространство имен, если это перечисление очень специфично для одной концепции или даже для одного класса. – BeyelerStudios
@BeyelerStudios Итак, вы говорите об обертке foo.h в пространстве имен, которое инкапсулирует как 'enum', так и 'class', но оставить' enum' из 'класса'? –
вы можете применить те же соображения к вашему классу 'foo' - если это соответствует вашему дизайну - если вы предпочитаете использовать общую номенклатуру (например,' Sample') для своих классов, возможно, пространство имён было бы также подходящим ... – BeyelerStudios