C是否将类返回到const引用中?
发布时间:2020-12-16 10:23:31 所属栏目:百科 来源:网络整理
导读:假设有一个返回std :: set的方法: std::setstring MyClass::myMethod() const{ std::setstring result; // ... some code to fill result ... return result;} 在调用者方面,我们可以通过两种方式存储myMethod的结果: void MyClass::test(){const std::set
假设有一个返回std :: set的方法:
std::set<string> MyClass::myMethod() const { std::set<string> result; // ... some code to fill result ... return result; } 在调用者方面,我们可以通过两种方式存储myMethod的结果: void MyClass::test() { const std::set<string> s1 = myMethod(); // 1 const std::set<string>& s2 = myMethod(); // 2 (using reference) // ... some code to use s1 or s2 ... } 我的问题是: >他们之间有什么区别吗? 解决方法
从理论上讲,第二个版本更好,因为它不需要额外的副本.
在实践中,RVO可能会启动,因此它们应该大致相同. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |