千家信息网

C++为什么尽量避免定义默认操作

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,本篇内容介绍了"C++为什么尽量避免定义默认操作"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!C.2
千家信息网最后更新 2025年02月03日C++为什么尽量避免定义默认操作

本篇内容介绍了"C++为什么尽量避免定义默认操作"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

C.20: 尽可能避免定义默认操作

译者注:默认操作是指析构,复制/移动构造,复制移动赋值运算符等默认情况下编译器会自动生成的那些操作。

Reason(原因)

It's the simplest and gives the cleanest semantics.

这要做最简单而且提供最干净的语义。

Example(示例)

struct Named_map {public:    // ... no default operations declared ...private:    string name;    map rep;};
Named_map nm; // default constructNamed_map nm2 {nm}; // copy construct

Since std::map and string have all the special functions, no further work is needed.

尽管std::map和string具有所有的特殊函数,但是在段代码中不需要这部分功能。

Note(注意)

This is known as "the rule of zero".

这就是总所周知的"0默认操作规则"

Enforcement(实施建议)

(非强制)虽然规则本身不是强制的,但是好的静态分析程序应该可以发现某种可以对代码进行改进以满足本准则的方法。例如,某个类包含(指针,大小)组合成员和释放指针的析构函数,那么它可能被转换为某种vector。

"C++为什么尽量避免定义默认操作"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

C++ 代码 内容 函数 情况 指针 更多 知识 规则 强制 移动 实用 干净 特殊 学有所成 接下来 准则 功能 原因 困境 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 莱芜供热站自动化控制软件开发 镇江银联软件开发欢迎来电 网络安全和信息化委员会 科技互联网相关的专业 马鞍山小说管理软件开发价格 我的世界服务器无效回话 学生呼吁网络安全知识宣传 网络安全执法是文科还是理科 阿里云服务器500g价格表 网贷金融信用数据库 陕西云杉网络技术有限公司 sqlite是内部数据库吗 广州大白互联网科技友现公司 网络安全教育三字经 防火墙 服务器安全 数据库事务原理及并发 死锁 网络安全用什么编程语言好 服务器安全狗可以卸掉吗 长虹白电产品软件开发 客户端软件开发商税友公司 中国互联网巨头哪些在搞高科技 苹果推动工业软件开发 微加互联网科技有限公司 手机如何开服务器 软件开发模式 时序数据库啊 我的世界大宝哥的服务器 后台管理系统是服务器吗 数据库写代码的地方在哪 农业银行软件开发中心西安
0