在C++头中声明数组并在cpp文件中定义它?

tre*_*ker 26 c++ arrays header declaration

这可能是一件非常简单的事情,但我是C++的新手,所以需要帮助.

我只想在我的C++头文件中声明一个数组,如:

int lettersArr[26];
Run Code Online (Sandbox Code Playgroud)

然后在cpp文件的函数中定义它,如:

    lettersArr[26] = { letA, letB, letC, letD, letE, letF, letG, letH,
        letI, letJ, letK, letL, letM, letN, letO, letP, letQ, letR, letS,
        letT, letU, letV, letW, letX, letY, letZ };
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

我的语法有错吗?这是正确的方法是什么?

非常感谢.

asc*_*ler 25

添加extern到头文件中的声明.

extern int lettersArr[26];
Run Code Online (Sandbox Code Playgroud)

(另外,除非您打算更改阵列,否则请考虑添加const.)

定义必须具有类型.添加int(或const int):

int lettersArr[26] = { letA, /*...*/ };
Run Code Online (Sandbox Code Playgroud)

  • 这变化很大!一开始就说出来.如果它在类定义中,那么它是类描述的一部分,而不是外部全局变量的声明 - 完全不相关的概念!如果它是类的一部分,那么在没有`extern`的情况下将它添加到类定义中,然后在构造函数中初始化它. (6认同)