![](/img/trans.png)
[英]How to initialize static const member that is array of another class, and use it?
[英]Initialize a static const array member of class in main(…) and not globally?
假设class Myclass { private: static const int myarray[2]; }
class Myclass { private: static const int myarray[2]; }
如果我想初始化myarray
我应该将以下语句放在全局范围内:
const int Myclass::myarray[2] = {1,1};
我该怎么办如果我想在main()中初始化我的数组(在某些运行时计算的值,例如在{n1, n2}
,其中n1
和n2
是在运行时在main()中根据命令行参数计算的值)
你无能为力。
您可以创建一个初始化值的成员函数,并调用它。 但是,如果它是static
, private
和const
- 那么你甚至无法做到这一点,也没有选择。
您无法在运行时初始化 static
成员,您无法从类外部访问private
成员(除非您交朋友),并且初始化后无法更改const
成员。
如果你放弃const
,那么你可以改变它。 您仍然需要在全局范围初始化,但您可以更改值。
请注意,只要它是private
,您将无法从main
访问它,但您可以编写一个包装函数成员来为您执行此操作(或将其public
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.