gpt4 book ai didi

c++ - 从类到 double 的隐式转换

转载 作者:搜寻专家 更新时间:2023-10-31 00:28:03 24 4
gpt4 key购买 nike

是否可以将给定类隐式转换为原始类型?特别是双倍。

如果我有一个类:

class Angle
{
double value;

Angle(double init_value = 0.0) : value(init_value) {}

double get_value() const {return (value);}
}

我是否可以调用一个函数,例如 std::sin(),并提供一个 Angle 类的对象,而无需在每次调用时显式地获取角度的值?例如:

Angle theta(180.0);
double result = std::sin(theta);

不必通过以下方式调用 std::sin:

Angle theta(180.0);
double result = std::sin(theta.get_value());

如果有一种方法可以实现这个所需的功能,我认为它会通过赋值运算符的运算符重载来实现。或者也许通过巧妙的方式定义移动/复制构造函数?

感谢您的任何见解。

最佳答案

在类定义中,您可以定义一个转换运算符。例如

class Angle
{
//...
operator double() const { return get_value(); }
};

关于c++ - 从类到 double 的隐式转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46720569/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com