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;
};