[英]C++: Overload a member's constructor function with keyword operator
在 Halide 的源代码中,我阅读了这行代码:
operator halide_type_t() const { return type; }
在一个名为Type
的类的定义中,它包含一个成员type
,它是halide_type_t
结构。
我对operator
重载有点困惑,我应该如何使用新函数halide_type_t()
?
考虑下面的代码:
struct number{
int numerator;
int denominator;
operator float() { return numerator*1.0 / denominator }
}
void main(){
number n;
n.numerator = 3;
n.denominator = 4;
float value = n; // here the user-defined conversion occurs
std::cout << value; // 0.75
}
在这种情况下,会发生用户定义的转换。 每当将 number 对象分配给浮点值时,就会发生转换并返回该值。 在您的情况下,当类 Type 的对象分配给 struct halide_type_t 时,即
Type t1;
halide_type_t t = t1;
t1.type 的值被赋值给 t。 希望能帮助到你! :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.