Ну, во-первых, это не является ни необходимой, ни лучшей практикой - этого недостаточно. Вам тоже нужен тип. Как только вы заполните это, const
по-прежнему не требуется, если вы не попытаетесь взять его с помощью ссылки const
. У нас есть три варианта, которые могли бы компилировать:
Foo qwerty = asdf.getFoo(); // (A)
const Foo qwerty = asdf.getFoo(); // (B)
const Foo& qwerty = asdf.getFoo(); // (C)
Учитывая, что getFoo()
возвращает ссылку на const
, наиболее эффективным, что было бы принять его в качестве ссылки на const
, а также, что позволяет избежать копирования. Если нет, то есть вы хотите a копия - в этом случае сделайте (A)
или (B)
, в зависимости от того, хотите ли вы модифицируемую копию или нет. Если Foo
не копируется, и в этом случае (C)
- ваш единственный вариант.
В конечном счете, это зависит от того, что вы хотите делать с qwerty
. Я по умолчанию должен был бы (C)
, и вам нужна причина, чтобы выбрать тот или другой.
Был ли компилятор жаловаться при удалении константы? –
Обязательно: попробуйте, и компилятор вам скажет. Наилучшая практика: основано мнение Primarilly. – John3136