同じ内容の質問をされた方がおり、参考にしてコードを作ったのですが、エラーを吐くため以下教えてください。
<aaa.h>
class bbb{
public:
bbb(); //初期化用関数(コンストラクタ)
static const int ccc[8]; //定義
};
<aaa,cpp>
bbb::bbb(){
const int ccc[8] = {1,2,3,4,5,6,7,8}; //宣言
}
以上のようにコードを書くと、
「外部シンボル"なんちゃら"は未解決です。」
というエラーが出ます。
これは宣言された変数に対して定義がない場合に出るエラーだということはわかりました。
ちなみにconst int型ではなくint型で宣言すると問題なくビルドが通りました。
ヘッダには変数の宣言だけをし、cppファイルでは定義をしている。ここができていればconstが付いていても問題ないと思うのですが、どこが間違っているのでしょうか。
No.1ベストアンサー
- 回答日時:
bbb::bbb(){
const int ccc[8] = {1,2,3,4,5,6,7,8}; //宣言
}
これって、「bbb::bbbメソッド内のローカル変数cccの宣言」です。
bbb::cccの宣言になっていません。
staticなフィールドの定義なら、メソッドと同じレベルに書く必要があります。
bbb::bbb(){
// コンストラクタの内容
}
const int bbb::ccc[8] = {1,2,3,4,5,6,7,8};
> ちなみにconst int型ではなくint型で宣言すると問題なくビルドが通りました。
こちらは再現しません。
手許のclang++では、constの有無では変化しません。
もしかして、 static const int → int (staticもはずしている) ではないですか?
kmeeさん
即時のご回答ありがとうございました。
言われたとおりにすると見事ビルドが通りました。
宣言のところに関してはstaticも外していたようです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- JavaScript 指定したパスが現URLに含まれていたら特定要素を削除するJavascriptのコードを教えてください 2 2023/04/27 17:58
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- JavaScript 条件に該当した時のみ定数を宣言する事はできますか 8 2023/03/15 05:55
- C言語・C++・C# C++プログラミングコードにポリモーフィズムを取り入れ方を教えてください。 2 2023/06/09 11:17
- Excel(エクセル) ¥マークを含むパスの処理について(マクロ、または関数) 2 2022/12/25 02:11
- Perl perl このテキストファイルを簡単に配列に入れるには? 2 2022/04/27 20:24
- JavaScript JavaScript|特定URLだった時、特定の要素を変更するコードの書き方を教えてほしいです 2 2023/08/25 21:43
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【gcc・cygwin】multiple defin...
-
C# Controls.Addで動的に配置し...
-
既定のコンストラクタがありま...
-
C# KeyDownイベントでショート...
-
unityの教科書のゲームを作って...
-
gcc: incompatible pointer type
-
int main()、void main()、void...
-
Arduinoでの圧電スピーカーとタ...
-
C#でトーンカーブの作成
-
C++にてtemplateで受け取った任...
-
静的でないメンバ関数の呼び出...
-
戻り値を返す関数の前に(void)...
-
C#を勉強中でC#で壁紙を変更す...
-
stddef.hって何?
-
_beginthread()の使用について
-
TimerProc コールバック関数を...
-
const_castのつかいどころを教...
-
Notepad++の関数リスト表示の変...
-
コールバックって・・・
-
DLLの関数呼び出しで引数がある...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
既定のコンストラクタがありま...
-
【gcc・cygwin】multiple defin...
-
Notepad++の関数リスト表示の変...
-
戻り値を返す関数の前に(void)...
-
ArduinoでMouse関数を使用して...
-
C++にてtemplateで受け取った任...
-
int main()、void main()、void...
-
多重定義が起きている?--lnk20...
-
C# KeyDownイベントでショート...
-
静的でないメンバ関数の呼び出...
-
VC++でGetKeyboardStateがうま...
-
C# Controls.Addで動的に配置し...
-
gcc: incompatible pointer type
-
void*型の配列について
-
const_castのつかいどころを教...
-
C言語 ① 5秒間 1秒間隔で点滅を...
-
(void)0 はどんな意味ですか
-
H8マイコンのシリアル通信につ...
-
DLLの関数呼び出しで引数がある...
-
TimerProc コールバック関数を...
おすすめ情報