Любая причина использовать (MFC) CList & lt; T, T & amp; & gt; а не CList & lt; T, const T & amp; & gt ;?

Я узнал некоторые рекомендации, которые все говорят мне, что передача переменной по ссылке всегда должна использовать 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;

Любое предложение будет полезно. Благодарю.

1

Решение

Программирование на C ++ без const похоже на вождение без ремня безопасности.

1. Это защищает вас от изменения переменных, которые не предназначены для изменения,

2. Он защищает вас от случайного назначения переменных

3. Принятие аргументов по константной ссылке дает вам эффективность передачи по ссылке с безопасностью передачи по значению

В то же время компилятор может генерировать более эффективный код, потому что он точно знает, какое состояние переменной / функции будет всегда. Если вы пишете жесткий код на C ++, это хорошо.

Просто для справки я прочитал в этой статье неудобства const, но настоятельно рекомендуется использовать const-правильность

http://duramecho.com/ComputerInformation/WhyHowCppConst.html

4

Другие решения