C++中explicit关键字的作用
程序员文章站
2022-03-19 20:56:59
C++中explicit关键字的作用
在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。...
C++中explicit关键字的作用
在C++中,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换,只能以显示的方式进行类型转换。explicit 关键字只能用于类内部的构造函数声明上作用于单个参数的构造函数;,explicit关键字用来修饰类的构造函数,被修饰的构造函数的类,不能发生相应的隐式类型转换。
class Things
{
public:
Things(const std::string&name =""):
m_name(name),height(0),weight(10){}
int CompareTo(const Things & other);
std::string m_name;
int height;
int weight;
};
这段代码中things的构造函数可以只用一个实参完成初始化,故可以进行一个隐式转换,
things a;
................//在这里被初始化并使用。
std::string nm ="book_1";
//由于可以隐式转换,所以可以下面这样使用
int result = a.CompareTo(nm);
这段程序使用一个string类型对象作为实参传给things的CompareTo函数。这个函数本来是需要一个tings对象作为实参。现在编译器使用string nm来构造并初始化一个
things对象,新生成的临时的things对象被传递给CompareTo函数,并在离开这段函数后被析构。
推荐阅读
-
springboot工程中各个层次的作用+springboot连接数据库的工具汇总+Mybatis的开发方式/语法
-
PHP中DIRECTORY_SEPARATOR的作用
-
图解JavaScript中的this关键字_javascript技巧
-
浅析CSS3 中的 transition,transform,translate之间区别和作用
-
C#中dynamic关键字的正确用法(推荐)
-
C++中 模板Template的使用
-
C++标准库中copy算法的使用
-
【C++进阶】C++中的数组退化
-
php类中的$this,static,final,const,self这几个关键字使用方法_php实例
-
PHP脚本编写在网站开发中的作用解析_PHP教程