浅谈C++ Explicit Constructors(显式构造函数)
发布时间 - 2026-01-10 22:11:32 点击率:次C++ 为类(Class)提供了许多默认函数。如果自己没有申明,编译器会为我们提供一个copy构造函数、一个copy assignment操作符和一个析构函数。此外,如果没有申明任何构造函数,编译器会为我们申明一个default构造函数。很像下面的Empty类:
class Empty{
public:
Empty();
Empty(const Empty &rhs);
~Empty();
Empty& operator=(const Empty &rhs);
};
就像Effective C++说的,如果不想使用编译器自动生成的函数,就应该明确拒绝。
1.C++中的隐式构造函数
如果c++类的其中一个构造函数有一个参数,那么在编译的时候就会有一个缺省的转换操作:将该构造函数对应数据类型的数据转换为该类对象。
2.Explicit Constructors显式构造函数
为了避免上面提到的只有一个参数的构造函数采用的缺省转换操作,在构造函数前,使用Explicit 关键字修饰即可。
3.如下面的例子:
#include <iostream>
using namespace std;
class B{
public:
int data;
B(int _data):data(_data){}
//explicit B(int _data):data(_data){}
};
int main(){
B temp=5;
cout<<temp.data<<endl;
return 0;
}
程序第11行,将int转换为B类型的对象,就是使用了隐式构造函数。因为B中存在一个只有一个参数的构造函数,且参数类型也是int。
如果在构造函数前加explicit ,表示为显示构造函数,则第11行编译不能通过。因为这时,就没有隐式构造函数啦。
以上这篇浅谈C++ Explicit Constructors(显式构造函数)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
# c
# explicit
# 构造函数
# c/c++拷贝构造函数和关键字explicit详解
# C++ explicit构造函数实例解析
# C++构造函数中explicit详解
# 给大家
# 只有一个
# 会为
# 转换为
# 隐式
# 有一个
# 就会
# 就像
# 希望能
# 如果没有
# 这篇
# 其中一个
# 提供一个
# 浅谈
# 很像
# 为了避免
# 将该
# 小编
# 自动生成
# 大家多多
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Laravel怎么创建自己的包(Package)_Laravel扩展包开发入门到发布
大连 网站制作,大连天途有线官网?
javascript中的数组方法有哪些_如何利用数组方法简化数据处理
javascript事件捕获机制【深入分析IE和DOM中的事件模型】
海南网站制作公司有哪些,海口网是哪家的?
详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
高端云建站费用究竟需要多少预算?
浅谈Javascript中的Label语句
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
Windows10如何更改计算机工作组_Win10系统属性修改Workgroup
如何快速搭建高效WAP手机网站吸引移动用户?
北京网站制作公司哪家好一点,北京租房网站有哪些?
如何在 Go 中优雅地映射具有动态字段的 JSON 对象到结构体
如何用PHP快速搭建CMS系统?
html如何与html链接_实现多个HTML页面互相链接【互相】
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
百度输入法ai组件怎么删除 百度输入法ai组件移除工具
Laravel如何实现API资源集合?(Resource Collection教程)
Laravel如何实现一对一模型关联?(Eloquent示例)
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
Laravel集合Collection怎么用_Laravel集合常用函数详解
宙斯浏览器文件分类查看教程 快速筛选视频文档与图片方法
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
Laravel项目怎么部署到Linux_Laravel Nginx配置详解
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
如何在Ubuntu系统下快速搭建WordPress个人网站?
Laravel如何实现RSS订阅源功能_Laravel动态生成网站XML格式订阅内容【教程】
Win11怎么恢复误删照片_Win11数据恢复工具使用【推荐】
iOS正则表达式验证手机号、邮箱、身份证号等
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
如何在七牛云存储上搭建网站并设置自定义域名?
香港服务器网站测试全流程:性能评估、SEO加载与移动适配优化
JavaScript如何实现继承_有哪些常用方法
微信公众帐号开发教程之图文消息全攻略
Laravel如何使用Service Provider注册服务_Laravel服务提供者配置与加载
作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】
悟空识字怎么关闭自动续费_悟空识字取消会员自动扣费步骤
微信小程序 五星评分(包括半颗星评分)实例代码
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Laravel全局作用域是什么_Laravel Eloquent Global Scopes应用指南
如何登录建站主机?访问步骤全解析
如何获取PHP WAP自助建站系统源码?
如何在IIS服务器上快速部署高效网站?
JavaScript如何实现路由_前端路由原理是什么
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知
如何快速搭建自助建站会员专属系统?

