Скажем, у меня есть класс, определяемый следующим образом:
class foo{};
теперь это вполне приемлемо;
foo f;
Почему это ошибка компилятора? (uninitialized const ‘f’
)
const foo f;
Почему мы должны это делать?
const foo f = foo();
Я знаю, почему мы не можем этого сделать.
const foo f(); // though it compiles..
Интересно, что справедливо следующее:
const std::string f;
Итак, что отсутствует в foo
?
Я понимаю, что есть три вопроса, и это плохая форма, но я надеюсь, что кто-то сможет прояснить это для меня в один ответ.
EDIT: пожалуйста, не забудьте закрыть его, если это глупо...