如何在我的头文件中创建一个静态数组?我查看了一些关于 stackoverflow 的示例,但无法让它们工作。
谢谢!
#ifndef DRUMKITLIBRARY_H_
#define DRUMKITLIBRARY_H_
class DrumKitLibrary
{
public:
static const char* const list[] = {"zip", "zam", "bam"};
};
#endif /* DRUMKITLIBRARY_H_ */
如何在我的头文件中创建一个静态数组?我查看了一些关于 stackoverflow 的示例,但无法让它们工作。
谢谢!
#ifndef DRUMKITLIBRARY_H_
#define DRUMKITLIBRARY_H_
class DrumKitLibrary
{
public:
static const char* const list[] = {"zip", "zam", "bam"};
};
#endif /* DRUMKITLIBRARY_H_ */
您的编译器错误正在发生,因为这不是您初始化静态数据的方式(好吧,静态 const 整数类型可以这样初始化,仅此而已)。你只在类定义中声明你的静态数据,你在类之外定义它。但是,您仍然有一个可能的问题。
在头文件中定义静态数据的问题是每个包含该头文件的文件都有自己的数组副本。通过在标头中声明它并在实现文件中定义它会更好地为您服务。
// A.h
class A {
public:
static const char *f[];
};
// A.cpp
#include "A.h"
const char *A::f[] = { "one", "two" };
你没有。
您在标头中声明它并在源中定义它。