gpt4 book ai didi

c++ - 将隐式 float 转换为其他类型

转载 作者:行者123 更新时间:2023-11-28 00:14:20 25 4
gpt4 key购买 nike

例如,我有一个名为 Length 的类。

class Length {
public:
static const float METER_TO_FLOAT_RATIO;

Length();
void setValue(float valueInMeter);
operator const float();

private:
float valueInMeter_;
};

const float METER_TO_FLOAT_RATIO= 10;

Length::Length() {}

Length::operator const float() {
return this->valueInMeter_ * METER_TO_FLOAT_RATIO;
}

void drawRectangle(Length width, Length height) {
//draw width * height rectangle
}

int main() {

Length width, height;

width = 20.0f;
height = 10.0f;

drawRectangle(width, height);

return 0;
}

我问了this question弄清楚如何从 Length 隐式转换为 float 但我忘记或没有询问如何向后转换。向后转换的方法将调用此语句:

    valueInMeter_ = valueInFloat_ / METER_TO_FLOAT_RATIO; //valueInFloat_ is the parameter

最佳答案

我能想到的有两种方式:

  1. 使用转换构造函数。

    Length(float val);
  2. 使用重载赋值运算符。

    Length& operator=(float val);

如果添加转换构造函数,则不需要赋值运算符。

关于c++ - 将隐式 float 转换为其他类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31307800/

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