因为有可能你在不经意间把一个对象当成一个类型兼容的变量来看待,而你的应用场景要求使用的是变量不是对象,你使用了对象就导致计算结果错误。因此一般在写类型转换函数的时候都要在声明前加上explicit关键字。
这就强迫你使用强制类型转换引起你十分的注意。
另一种做法是使用非类型转换函数来代替类型转换函数的功能。可想而知这方法不允许你直接进行赋值的操作只能把函数返回值作为右值了。
因为有可能你在不经意间把一个对象当成一个类型兼容的变量来看待,而你的应用场景要求使用的是变量不是对象,你使用了对象就导致计算结果错误。因此一般在写类型转换函数的时候都要在声明前加上explicit关键字。
这就强迫你使用强制类型转换引起你十分的注意。
另一种做法是使用非类型转换函数来代替类型转换函数的功能。可想而知这方法不允许你直接进行赋值的操作只能把函数返回值作为右值了。