【问题标题】:C++ anonymous class initializationC++ 匿名类初始化
【发布时间】:2010-08-31 18:46:59
【问题描述】:

可以在匿名类中初始化成员变量吗?

例如

class {
public: int &value;
} container;

【问题讨论】:

  • 你为什么想要一个匿名类(那永远无法通过代码审查)。一个未命名的命名空间意味着类名不会泄漏到另一个 CU 中。
  • @Martin York 函数本地容器/函子
  • 那不是class,这是struct
  • @sbi:除了省略“public:”之外,这对问题有什么影响吗?
  • @Fred:它必须是一个聚合体(比 POD 稍微松一些),class 很少有这种情况。拥有任何非静态非公共成员都是非法的。

标签: c++


【解决方案1】:
int x = 3;
class {
    public: int &value;
} container = {x};

【讨论】:

  • 哦。回想起来很明显
  • +1 因为我没有意识到聚合可以包含引用。但是,需要指出的是,这确实需要聚合。 (实际应用的唯一要求是没有访问控制和基础。)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-14
  • 1970-01-01
相关资源
最近更新 更多