前端之家收集整理的这篇文章主要介绍了
c – 你为什么要施放作业的lhs?,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我遇到了一些可归结为以下
内容的
代码:
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?我疯了,还是有目的?
在这种情况下,我看不出任何投射的原因,因为投射的东西与演员阵容的类型相同.通常,它可以用于强制使用特定的分配运算符.
我现在将重复我的口头禅:如果你的代码包含强制转换,那么代码或设计可能有问题,你应该检查两者以便删除强制转换.
原文链接:https://www.f2er.com/c/239672.html