Я узнал некоторые рекомендации, которые все говорят мне, что передача переменной по ссылке всегда должна использовать const, например, func(const T& a)
, И я знаю второй параметр шаблона в CList
это ARG_TYPE
, подобно CList::AddTail(ARG_TYPE item)
будет использовать ARG_TYPE
как его тип параметра.
Я видел примеры кодов в MSDN показывает мне, что использует non-const
Введите в качестве второго аргумента шаблона. Любые причины, чтобы предпочесть это non-const
Тип как тип параметра?
CList<string, &string> a;
против CList<string, const &string> b;
Любое предложение будет полезно. Благодарю.
Программирование на C ++ без const похоже на вождение без ремня безопасности.
1. Это защищает вас от изменения переменных, которые не предназначены для изменения,
2. Он защищает вас от случайного назначения переменных
3. Принятие аргументов по константной ссылке дает вам эффективность передачи по ссылке с безопасностью передачи по значению
В то же время компилятор может генерировать более эффективный код, потому что он точно знает, какое состояние переменной / функции будет всегда. Если вы пишете жесткий код на C ++, это хорошо.
Просто для справки я прочитал в этой статье неудобства const, но настоятельно рекомендуется использовать const-правильность
http://duramecho.com/ComputerInformation/WhyHowCppConst.html