C++——explicit
2024-09-05 05:03:43
explicit构造函数是用来防止隐式转换的。请看下面的代码:
class Test1
{
public:
Test1(int n)
{
num=n;
}//普通构造函数
private:
int num;
};
class Test2
{
public:
explicit Test2(int n)
{
num=n;
}//explicit(显式)构造函数
private:
int num;
};
int main()
{
Test1 t1=;//隐式调用其构造函数,成功
Test2 t2=;//编译错误,不能隐式调用其构造函数
Test2 t2();//显式调用成功
return ;
}
1.explicit构造函数只能直接初始化
2.可以使用static_cast强制转换
item.combine(static_cast<Sales_data>(cin));
最新文章
- dos 下删除文件、文件夹
- C语言编程风格(转发)
- LinQ 基础
- photoshop菜单显示不全的解决方法
- html input readonly 和 disable的区别
- 团体程序设计天梯赛-练习集L1-002. 打印沙漏
- 创建oracle 密码文件
- Python自学笔记-面向对象相关(Mr seven)
- js各种继承方式汇总
- JavaScript之DOM创建节点
- jQuery源码解析对象实例化与jQuery原型及整体构建模型分析(一)
- Maven使用lib下的包
- MySQLi面向对象实践--select
- 坦克大战java版
- windows WTL使用命令行参数
- Java常见异常:Exception in thread ";main"; java.lang.NoClassDefFoundError
- 通过HTTP协议发送远程消息
- 简单介绍--TOSCA自动化测试工具
- Digester学习笔记(三)转载
- 如何计算圆周率 Pi (π)值, 精确到小数点后 10000 位 只需要 30 多句代码!