c++ - 静态初始化器的上下文是什么,我如何声明它的友元?

标签 c++ c++11 visibility compile-time static-initialization

class test{
    static const int veryprivate=3;
};

const int anarray[]={test::veryprivate};

g++ 巧妙地指出 anarray 既不是函数也不是成员函数。是否可以修复此代码以保持 veryprivate private?接受 C++11。

最佳答案

使 anarray 成为数组引用:

class test {
    static const int veryprivate = 3;
    friend class animpl;
};
class animpl {
public:
    static const int anarray[] = { test::veryprivate };
};
auto &anarray = animpl::anarray;

关于c++ - 静态初始化器的上下文是什么,我如何声明它的友元?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13616479/

相关文章:

c++ - 将 C++ 共享指针的别名构造函数与空共享指针一起使用

java - isVisible() 是否保证JAVA中UI对象的可见性

php - 客户端断开连接后 CSimpleSocket 失败

c++ - 析构函数 : virtual or not?

c++ - 编写函数以在容器的子集中执行操作

javascript - 检测浏览器选项卡是否专注于移动浏览器

jquery - 不要让 IE 选择并复制使用 jQuery .hide() 隐藏的表行

c++ - 键值关联容器中的顺序有用的用例是什么

c++ - 为什么我的重载 << 不返回任何数据?

c++ - 访问私有(private)嵌套类