我学到了一些指导原则,它们都告诉我通过引用传递变量应该始终使用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;
任何建议都会有帮助。谢谢。
发布于 2014-04-22 04:50:22
没有const的C++编程就像没有安全带的驾驶。
1.它保护你不被改变的变量,
2.它可保护您避免意外的可变作业。
3.通过引用接受论点,可以提高参考传递的效率和传递价值的安全性。
同时,编译器可以生成更高效的代码,因为它知道变量/函数的状态在任何时候都是什么状态。如果您正在编写紧凑的C++代码,这是很好的。
为了供您参考,我在本文中阅读了const的不便之处,但它被强烈推荐使用const-正确性。
http://duramecho.com/ComputerInformation/WhyHowCppConst.html
https://stackoverflow.com/questions/23210454
复制相似问题