当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《你为什么要施放作业的lhs?》经验,为你挑选了1个好方法。

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

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?我疯了,还是有目的?



1> 小智..:

在这种情况下,我看不出任何投射的原因,因为投射的东西与演员阵容的类型相同.通常,它可以用于强制使用特定的分配操作员.

我现在将重复我的口头禅:如果你的代码包含强制转换,那么代码或设计可能有问题,你应该检查两者以便删除强制转换.

推荐阅读
有风吹过best
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有