声明后初始化类外的数组

Posted

技术标签:

【中文标题】声明后初始化类外的数组【英文标题】:Initializing an array outside class after declaration 【发布时间】:2017-08-13 18:27:13 【问题描述】:

例如:

const int m = 10;
class C
public:
   double A[m];
;
int main()
    C name;
    name.A[m] = ...  // initializing here?

我找不到解决办法,例如我可以这样做

C name = ...;

这完全可以工作,但为了功能,我想知道我是否可以为类中的单个变量做到这一点。

【问题讨论】:

除了循环之外别无他法。 在 main 的第二行。你不再初始化了。 name.A[m] = <something> 将调用 UB 【参考方案1】:

在你的例子中,你只需要写:

   name.A[x]=value;

其中valuedoublex 介于 0 和 9 之间。如果您希望为其所有或部分元素设置值,也可以创建一个循环。

【讨论】:

以上是关于声明后初始化类外的数组的主要内容,如果未能解决你的问题,请参考以下文章

为什么static成员必须在类外初始化

为什么static成员必须在类外初始化,而不能在类的头文件中初始化

1.类中数据成员的声明与初始化总结

静态成员不能在类内初始化

C++中类里面定义 静态成员变量的问题

MFC 线程的创建,线程函数在类内类外