如何在c++中初始化大量的静态类

How can I initialization a massive of static class in c++

本文关键字:静态类 初始化 c++      更新时间:2023-10-16

我有头.h

Class A
{
int var_1;
int var_2; 
};
Class b
{
private: static A var[MAX];
.....
};

但是如何在header.cpp中初始化此属性?

给A一个默认构造函数,将int设置为0s或其他值。

A b::var[MAX] = {};

在实现文件中:

A b::var[] = {}; // static member definition
                 // A() is called for each member so you might want
                 // to implement it

示例:

#define MAX 10
class A
{
    int var_1;
    int var_2; 
};
class b
{
private: 
    static A var[MAX];   // static member declaration
};
A b::var[] = {};         // static member definition
int main() {
    return 0;
}

http://ideone.com/ndkPmX

假设class A具有不带参数的公共构造函数(或默认构造函数):

文件b.h:

#include "a.h"
// global constant:
const int MAX = 10;
class B {
private:
    static A var[MAX];    // declaration
};

文件b.cpp:

#include "b.h"
A B::var[MAX] = {};       // definition