gpt4 book ai didi

c++ - 你为什么要施放作业的 lhs ?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:23:04 25 4
gpt4 key购买 nike

我遇到了一些归结为以下内容的代码:

enum BAR { /* enum values omitted */ }

class Foo{
public:
void set(const BAR& bar);
private:
uint32_t bits;
};

void Foo::set(const BAR& bar)
{
(uint32_t&)bits = bits | bar;
}

我不明白在 Foo::set 的赋值中使用 c 风格强制转换的意义。你为什么要施放作业的 lhs ?我是疯了,还是这是有目的的?

最佳答案

在这种情况下,我看不出有任何强制转换的理由,因为被转换的东西与转换的类型相同。通常,它可用于强制使用特定的赋值运算符。

现在我要重复我的口头禅:如果您的代码包含强制转换,则代码或设计可能有问题,您应该检查两者以移除强制转换。

关于c++ - 你为什么要施放作业的 lhs ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/715139/

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