任何理由使用(MFC)CList <t,t&=“”>而不是CList <t,const =“”t&=“”>?</t,> </t,>

时间:2014-04-22 04:35:33

标签: c++ mfc clist

我已经学到了一些指导原则,所有人都告诉我通过引用传递一个变量应该总是使用const,比如func(const T& a)。我知道CList中的第二个模板参数是ARG_TYPE。与CList::AddTail(ARG_TYPE item)类似,会使用ARG_TYPE作为参数类型。

我看到msdn中的示例代码显示我使用non-const Type作为其第二个模板参数。是否有理由将此non-const类型作为参数类型?

CList<string, &string> a; vs CList<string, const &string> b;

任何建议都会有所帮助。感谢。

1 个答案:

答案 0 :(得分:4)

没有const的C ++编程就像没有安全带的驾驶一样。

1.它可以保护您免于更改无意更改的变量,

2.它可以防止您进行意外的变量分配

3.通过const引用接受参数可以获得通过引用传递的效率和传递值的安全性

同时,编译器可以生成更高效的代码,因为它确切地知道变量/函数的状态。如果你正在编写严格的C ++代码,这很好。

仅供您参考我在本文中阅读了const的不便之处,但强烈建议使用const-correctness

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