gpt4 book ai didi

c++ - 为类型推导重载赋值运算符

转载 作者:行者123 更新时间:2023-11-30 01:59:58 24 4
gpt4 key购买 nike

这是ideone代码:http://ideone.com/Qp8Eqg

我的问题是,是否可以仅根据左值强制转换?例如,

[Seconds] s = 2_h + 60_s;
cout <<s.getSeconds()<<endl;

显然,我必须编写类似 2_h.toSeconds() 的内容,但这太冗长而且无法实现我的想法。

最佳答案

为了允许这个(这比你写的更可能是你的问题,如果我错了请纠正我):

Seconds s = 2_h;

以下方法可行:将 operator Seconds() const 添加到 Hours 类:

class Hours {
unsigned long long _hours;
public:
Hours(unsigned long long hours) : _hours(hours) { }

operator Seconds() const;

unsigned long long getHours() const {
return this->_hours;
}
};

并在 class Seconds 之后定义它:

Hours::operator Seconds() const { return this->_hours * 3600; }

关于c++ - 为类型推导重载赋值运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15622958/

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