C++中怎么使用default来明确默认语义
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章主要介绍"C++中怎么使用default来明确默认语义",在日常操作中,相信很多人在C++中怎么使用default来明确默认语义问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2025年02月04日C++中怎么使用default来明确默认语义Reason(原因) Example(示例) Example, bad(反面示例) Enforcement(实施建议)
这篇文章主要介绍"C++中怎么使用default来明确默认语义",在日常操作中,相信很多人在C++中怎么使用default来明确默认语义问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C++中怎么使用default来明确默认语义"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
C.80:如果明确希望使用默认语义,使用=default
编译器更有可能正确地处理默认函数的语义,你无法比编译器做得更好。
class Tracer {
string message;
public:
Tracer(const string& m) : message{m} { cerr << "entering "> ~Tracer() { cerr << "exiting " << message << '\n'; }
Tracer(const Tracer&) = default;
Tracer& operator=(const Tracer&) = default;
Tracer(Tracer&&) = default;
Tracer& operator=(Tracer&&) = default;
};
因为定义了析构函数,我们必须定义拷贝和移动操作。使用=default是达到相同效果的最好、最简单的方式。
class Tracer2 {
string message;
public:
Tracer2(const string& m) : message{m} { cerr << "entering "> ~Tracer2() { cerr << "exiting " << message << '\n'; }
Tracer2(const Tracer2& a) : message{a.message} {}
Tracer2& operator=(const Tracer2& a) { message = a.message; return *this; }
Tracer2(Tracer2&& a) :message{a.message} {}
Tracer2& operator=(Tracer2&& a) { message = a.message; return *this; }
};
实际实现拷贝和移动操作的工作冗长、乏味且易错。编译器会做得更好。
(中等)实现和编译器生成版本相同的可访问性和语义的特殊函数是多余的工作。
到此,关于"C++中怎么使用default来明确默认语义"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
语义
C++
编译器
学习
编译
函数
相同
拷贝
更多
示例
工作
帮助
移动
冗长
实用
特殊
乏味
接下来
原因
反面
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全应急预案 商务
如何做一个商业发票的数据库
网络安全引导官兵
数据库spot用户
工业网关怎么把数据采到数据库
吕梁展厅多媒体软件开发
澎博软件开发
辽宁统一软件开发品质保障
HCNA网络技术论文
设计图片软件开发
安卓软件开发可视版
互联网科技公司销售岗待遇
上海纽荷互联网科技有限公司
访问服务器上的文件
网络技术电子商务具体是
会计网络技术就业方向
博采数据库
图书馆网络技术岗位
国家政策扶持软件开发企业
服务器硬盘数据清洗
用友软件开发协议
怎么加服务器线程
网络安全教育考试a
最好的服务器mc
战地一怎么连接不上服务器
保存数据库失败怎么回事
现代网络技术实验python
网络技术应用区域
网络安全协会工作内容
博通赛门铁克网络安全服务