如何在C++中声明数组的固定大小

Pin*_*ino 3 c++

快速而愚蠢的问题.如果我不允许使用全局变量,如何声明数组的大小?

假设我有文件Album.h:

class Album {
private:
    Song songs[MAX_SONGS];

    //...

}
Run Code Online (Sandbox Code Playgroud)

我在哪里放MAX_SONGS = 30const int MAX_SONGS = 30 被认为是一个变量吧?请注意,整个程序应该知道大小.

Arm*_*yan 8

class Album {
private:
    static const int MAX_SONGS = 100;
    Song songs[MAX_SONGS];

    //...
};
Run Code Online (Sandbox Code Playgroud)

请注意,静态const变量的内联初始化仅允许类型为整数的那些.另请注意,无论初始化如何,这仍然只是一个声明而不是定义.您通常不需要这个定义,尽管在某些情况下您会这样做.

至于可见性,您可以提供一个返回MAX_SONGS的静态getter函数.

public:
static int GetMaxSongs() { return MAX_SONGS; }
Run Code Online (Sandbox Code Playgroud)

  • 怎么样`std :: array <Song,MAX_SONGS>歌曲?` - 然后你可以使用`songs.size()`进行查询,不收取任何费用. (2认同)