前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C++核心准则C.63:保证移动赋值运算符为非虚函数,参数类型为右值引用,返回值为常量引用类型

C++核心准则C.63:保证移动赋值运算符为非虚函数,参数类型为右值引用,返回值为常量引用类型

作者头像
面向对象思考
发布2020-03-25 16:15:47
6730
发布2020-03-25 16:15:47
举报

C.63: Make move assignment non-virtual, take the parameter by &&, and return by non-const & C.63:保证移动赋值运算符为非虚函数,参数类型为右值引用,返回值为常量引用类型

Reason(原因)

It is simple and efficient.

这样做简单且高效。

See(参见):

The rule for copy-assignment.

拷贝赋值规则。

相关链接:

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rc-copy-assignment

Enforcement(实施建议)

Equivalent to what is done for copy-assignment.

和拷贝赋值的情况时所做的相同。

  • (Simple) An assignment operator should not be virtual. Here be dragons! (简单)赋值运算符不应该是虚函数。那样做很危险。
  • (Simple) An assignment operator should return T& to enable chaining, not alternatives like const T& which interfere with composability and putting objects in containers. (简单)赋值运算符应该返回T&,这样才能实现连续赋值。不要改成类似const T&的类型,这样会影响组装性并妨碍将对象放进容器中。
  • (Moderate) A move assignment operator should (implicitly or explicitly) invoke all base and member move assignment operators. (中等)移动赋值运算符应该(隐式或显式)调用所有的基类和成员的移动赋值运算符。

原文链接

https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c63-make-move-assignment-non-virtual-take-the-parameter-by--and-return-by-non-const-


觉得本文有帮助?请分享给更多人。

关注【面向对象思考】轻松学习每一天!

面向对象开发,面向对象思考!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-01-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 面向对象思考 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档