假设class Myclass { private: static const int myarray[2]; }
如果我想初始化myarray
,我应该将以下语句放在全局范围内:
const int Myclass::myarray[2] = {1,1};
如果我想在main()中初始化我的数组(在某些运行时计算的值,例如在{n1, n2}
n1
和n2
是运行时在main()中根据命令行参数计算的值)
答案 0 :(得分:2)
你无能为力。
您可以创建一个成员函数来初始化值并调用它。但是,如果它是static
,private
和const
- 那么你甚至无法做到这一点,也不能选择。
您无法在运行时初始化 static
成员,您无法从课外访问private
成员(除非您交到朋友),并且您无法更改初始化后const
成员。
如果您放弃const
,则可以更改它。您仍然必须在全局范围初始化,但您可以更改值。
请注意,只要其private
,您将无法从main
访问它,但您可以编写一个包装函数成员来为您执行此操作(或使其成为public
。 1}})。