QT学习之explicit
来源:互联网 发布:法国外籍军团知乎 编辑:程序博客网 时间:2024/06/05 21:57
explicit关键字是C++中阻止构造函数隐式转换设计的,具体如下
class A{
int a;
A(int a){
this->a=a;
}
}
然后A a1(5);正确 A a2=5;正确
class B{
int b;
explicit A(int b){
this->b=.b;
}
}
然后B b1(5);正确 B b2=5;错误
因为类B的构造函数用exolicit修饰后,就不能隐式转换初始化了,也就是只能使用B b1(5);这种规范的构造对象格式,而后面的B b2=5;这种格式就是错误的,这样使得在只有一个变量时那种不规范的构造格式编译错误
当然其实也可以说不单单是只有一个变量,而是一个无初始参数的“必须变量”,具体如下
class Student{
String name;
int year;
char sex;
Student(String name,int year=0,char sex='m'){
this->name=name;
this->year=year;
this->sex=sex;
}
}
显然 Student s1("Bob",10,'m');正确 Student s2="Bob";正确
上述s2的构造正确是因为这个构造函数列表虽然有3个参数,但是实际中所必须传参的是name这个变量,其余的都是带初值的,所以这种情况也可以用那种不规范的初始化方法,所以这种情况也应该用explicit修饰构造函数,修饰后作用和前面介绍的相同
ui
阅读全文
0 0
- QT学习之explicit
- qt学习之qt creator
- qt学习之qt安装
- 《C++ primer》学习笔记之三十:explicit constructor
- SQL Server XML基础学习<3>之--FOR XML EXPLICIT
- C++学习之路(23)---C++ explicit关键字详解
- Qt C++中的关键字explicit
- Qt C++中的关键字explicit
- Qt C++ 中的关键字explicit
- Qt C++中的关键字explicit
- Qt C++中的关键字explicit .
- Qt C++中的关键字explicit
- Qt C++中的关键字explicit
- Qt C++中的关键字explicit
- Qt C++中的关键字explicit
- Qt C++中的关键字explicit
- QT C++中的关键字explicit
- Qt C++中的关键字explicit
- 二叉树的一些基本操作
- XGBoost 与 Boosted Tree
- Zynq-Linux移植学习笔记之七-网络驱动
- tomcat服务器重装与myeclipse JavaWeb开发的几点注意事项
- PCL_FPFH特征提取及直方图显示
- QT学习之explicit
- 消息队列两种模式
- 图灵机器人API 2.0 SDK for PHP
- Linux 执行DB2数据库导入存储过程/自定义函数脚本文件命令
- 常用docker命令,及一些坑
- test
- 基于Unity3D的2d拾宝游戏(一)
- 阿里架构之旅(三)——动物园管理者zookeeper
- 记本路由协议书