Я смотрел видео и увидел этот код:Переходя константные ссылки на функцию
class Dog {
public:
Dog() : age(3), name("dummy") {}
void setAge(const int &a) { age = a; }
private:
int age;
std::string name;
};
мне было интересно, о сигнатуре функции для setAge
, потому что я никогда не использовал const
в качестве параметра функции. Я просмотрел несколько связанных ответов, но никто, кажется, не ответил на мой вопрос.
В таком элементарном примере трудно увидеть преимущество передачи const
ссылки на функцию.
Есть ли причина, почему вы хотите сделать ссылкой a const
? Единственное приложение, о котором я мог думать, - это встроенное программирование, когда копия переменной может тратить драгоценное пространство.
Есть ли какие-нибудь простые примеры, возможно, где воздействие легко просматривается с помощью ссылки const
?
Спасибо, erip
Чтобы подтвердить свой вопрос, «зачем использовать' const int & a', а не 'int a' как аргумент?"? –
В противном случае подпрограмма могла бы изменить переданный 'int' - и на самом деле следует ожидать этого. Посмотрите все на [const correctness] (http://www.parashift.com/c++-faq/const-correctness.html). – davidhigh
@erip Забавно, потому что вы спрашиваете, какой смысл делать ссылку 'const'. Что подсказывает, что вы спрашиваете о 'int &' vs. 'const int &'. – juanchopanza