数值转对象
class MyClass
{
private:
int mValue;
public:
MyClass(int value)
{
mValue = value;
}
};
int main(int argc, const char * argv[]) {
int n = 33.3;
MyClass myClass(30); // 将int类型的值转换为MyClass对象
return 0;
}
对象转数值
借助operator typename() {… }实现
规范如下:
- 转换函数必须是方法
- 转换函数不能有返回值
- 转换函数不能有参数
class MyClass
{
private:
int mValue;
double mDValue;
public:
MyClass(int value)
{
mValue = value;
}
MyClass(double value)
{
mDValue = value;
}
operator int() {
return mValue;
}
operator double()
{
return mDValue;
}
};
int main(int argc, const char * argv[]) {
int value = myClass;
cout << value << endl;
MyClass myClass1(30.123);
double value1 = myClass1;
cout << value1 << endl;
return 0;
}