首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有什么理由使用(MFC) CList<T,T&>而不是CList<T,const T&>?

有什么理由使用(MFC) CList<T,T&>而不是CList<T,const T&>?
EN

Stack Overflow用户
提问于 2014-04-22 04:35:33
回答 1查看 861关注 0票数 1

我学到了一些指导原则,它们都告诉我通过引用传递变量应该始终使用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;

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-22 04:50:22

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

1.它保护你不被改变的变量,

2.它可保护您避免意外的可变作业。

3.通过引用接受论点,可以提高参考传递的效率和传递价值的安全性。

同时,编译器可以生成更高效的代码,因为它知道变量/函数的状态在任何时候都是什么状态。如果您正在编写紧凑的C++代码,这是很好的。

为了供您参考,我在本文中阅读了const的不便之处,但它被强烈推荐使用const-正确性。

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

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23210454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档