我想实现两个距离相关类之间的显式类型转换。我需要重载 ()
作为前缀来使用它:
class1=(class2)class2_object;
最佳答案
示例:
struct Y {};
struct X {
operator Y() const { return ...; }
};
int main() {
X x;
Y y1 = static_cast<Y>(x); // uses conversion operator
Y y2 = (Y)x; // also possible, but don't use C-style casts in C++!
Y y3 = x; // even this is possible...
}
在 C++11 中,您可以使用关键字 explicit
来避免意外的隐式转换(即 Y y3 = x;
):
explicit operator Y() const { return ...; }
关于c++ - 如何重载 () 运算符作为前缀?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23566127/