2

ヘッダー ファイルに静的配列を作成するにはどうすればよいですか? stackoverflow でいくつかの例を見ましたが、それらを機能させることができません。

ありがとう!

#ifndef DRUMKITLIBRARY_H_
#define DRUMKITLIBRARY_H_


class DrumKitLibrary
{
public:
    static const char* const list[] = {"zip", "zam", "bam"};
};

#endif /* DRUMKITLIBRARY_H_ */
4

2 に答える 2

3

静的データを初期化する方法ではないため、コンパイラエラーが発生しています(静的 const 整数型はそのように初期化できますが、それだけです)。クラス定義で静的データのみを宣言し、クラスの外で定義します。ただし、まだ問題が発生する可能性があります。

ヘッダー ファイルで静的データを定義する際の問題は、そのヘッダーを含むすべてのファイルが独自の配列のコピーを取得することです。ヘッダーで宣言し、実装ファイルで定義することで、より適切に機能します。

// A.h
class A {
public:
    static const char *f[];
};

// A.cpp
#include "A.h"

const char *A::f[] = { "one", "two" };
于 2012-11-24T18:35:23.270 に答える
0

あなたはそうしない。

ヘッダーで宣言し、ソースで定義します。

于 2012-11-24T18:28:33.927 に答える