实现从自定义类到 POD 或其他类型的转换非常简单。它在自定义类本身中实现为以目标类型命名的运算符。像这样,
operator int{ return anInt; }
反过来呢?例如,我可以重载 int 到自定义类类型转换吗?
实现从自定义类到 POD 或其他类型的转换非常简单。它在自定义类本身中实现为以目标类型命名的运算符。像这样,
operator int{ return anInt; }
反过来呢?例如,我可以重载 int 到自定义类类型转换吗?
您可以,但您可以通过为您的类提供一个将基本类型作为参数的构造函数来做不同的事情:
class X {
public:
X(int) {}
};
void f(X const &x) { }
int main(){
f(2); // allowed -- will construct an X, then pass it to `f`.
}
请注意,在某些情况下,这可能会导致意外的转换——通常认为最好标记此类构造函数explicit
以防止它们被使用,除非您明确强制转换。
使用单参数构造函数
MyClass(int n) :anInt(n) {}