发生在例如对象赋给int或者int赋给对象的场合下。
1、int等赋给对象
任何接收唯一一个参数(或者其它有默认参数,只剩一个未知参数)的构造函数都可被用作转换函数,将类型与该参数相同的值转换为类。如果将类型与该参数相同的值赋给对象,则C++自动调用该构造函数,称隐式转换。可以在构造函数前加关键字explict,关闭这种特性,只允许显式转换(即(类)这样的转换,类似于普通类型的强制转换)。
2、对象赋给int等
需要定义转换函数,转换函数必须是成员函数,原型如下:
Operator typeName();
其没有返回类型,没有参数,但必须返回转换后的值(虽然没有声明返回类型)。例如:
operator int() const;
使用的时候可显式或隐式,但经验表明,最好不要依赖于这种隐式转换函数。
新闻热点
疑难解答