class Int{
private:int _value = 0;
public:operator int() const{ // 隐式转换return _value;}// 显式转换explicit operator int*() const { return nullptr; }operator=(const int page){_value =page;}operator float() const{return static_cast<float>(_value);}operator auto() const { return 10; } // OK:推导的返回类型,C++14
};
operator类型名(): // C++11
explicit ( 表达式 ) operator 转换类型标识 // C++20
Int i;
Int newValue = i + 5;
其它示例:
class A
{
public:
operator char*() const // 隐式转换
{
return data;//当从其他类型转换到char*时自动调用
}
private:
char* data;
};