如果类有个C类型的字符数组成员,那么是无法在类定义的时候同时初始化的,也无法在初始化列表里初始化,只能是构造函数中去赋值。
有的时候该类会有一些对应的字面字符串信息,如果要通过构造函数去赋值的话太繁琐了(使用的时候还要生成一个实例对象),弄成全局变量的话又没有必要,这时,我们可以把这些字面字符串定义为类的static成员,然后在cpp文件里初始化,具体例子如下:
头文件.h
class MyClass {
public:
static const char* EXAMPLE_STRING[];
}
实现.cpp(注意不要再用static修饰了)
const char* MyClass::EXAMPLE_STRING[] = {"AAA", "BBB", "CCC"};