繁体   English   中英

C++:使用关键字运算符重载成员的构造函数

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM