
VisualStudio2015を使用しています。
クラスのヘッダ内で以下のように配列を初期化しようとすると、「エラー:不完全な型は使用できません」となりコンパイルできません。
class MyClass
{
public:
int a[] = { 1,2,3 };
int b[] = { 1,2,3 };
};
そこで a の要素数を指定すると、今度はコンパイル出来ます。
class MyClass
{
public:
int a[3] = { 1,2,3 };
int b[] = { 1,2,3 };
};
要素数を指定すればいいだけなのですが、この理由が分からなくてモヤモヤしています。
クラスのメンバ配列で要素数を省略できるのは一つだけという制限でもあるのでしょうか?
No.1ベストアンサー
- 回答日時:
ちょろっと仕様を確認したけど
int a[] = { 1,2,3 };
としたときの a が「不完全型」かどうか判断できなかった (苦笑). int a[] までは不完全型だから, それではじかれる可能性がある (static でないデータメンバーは完全型である必要があるので). ちなみに手元の G++ 5.2.0 ではどっちもアウト.
jひょっとすると VC++ の拡張機能で「最後のメンバーは『大きさを陽に与えない配列』でもいい」というのがあったりするかもしれん. これが発動するなら
class MyClass
{
public:
int a[] = { 1,2,3 };
int b = 1;
};
はダメでも
class MyClass
{
public:
int b = 1;
int a[] = { 1,2,3 };
};
は OK だったりする.
色々試してみましたが、確かに最後のメンバーだけは要素数を省略できるようでした。
他のコンパイラではアウトなようですし、要素数の省略は使わないようにしようと思います。
回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語の課題が出たのですが自力でやっても分かりませんでした。 要素数がnであるint型の配列v2の並 3 2022/11/19 17:41
- Java javaでのプログラム(配列)について質問です. 2 2022/10/14 22:27
- その他(プログラミング・Web制作) pythonのプログラムについての質問です。 1 2023/05/26 10:31
- C言語・C++・C# c言語の問題です 課題1 (二分探索木とセット) 大きさ size の配列 array を考える。す 2 2023/01/10 21:08
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- Java Java・配列の問題です。 int 「」nums = new int「5」 ⤴︎ この5の事を言葉で 2 2023/06/21 22:30
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# このプログラミングの問題を教えて欲しいです。 キーボードから整数kを入力し、kが配列aの中に何個存在 2 2022/12/19 22:50
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
Javaのファイル名チェックについて
-
JAVAでCの関数ポインタのような...
-
SwingでJtableのヘッダ行が表示...
-
Javaで四角をつくったのですが...
-
6桁の数字を重複なしでランダム...
-
式の型は配列型で int に解決済...
-
初心者ですが、今javaで簡単な...
-
C#で判断文(三択)の省略形は...
-
Java 初心者 int型の取り扱い方
-
共有メモリについて
-
マインスイーパーもどきをつく...
-
JAVA エラー 式の開始が不正で...
-
java spring でエラーが出て困...
-
ビープ音をなめらかに鳴らしたい
-
double型変数値の整数部分のみ...
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
-
実数からの小数部の取得
-
ループ処理の際、最後だけ","を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「配列定数は、イニシャライザ...
-
メインが含まれていません
-
式の型は配列型で int に解決済...
-
Java 初心者 int型の取り扱い方
-
(Swing)JTextFieldを半角のみ入...
-
DataSet(DataTable)の使い方
-
javaでカレンダー作成
-
intが負の時に投げる例外はあり...
-
C#で実行時にメソッドの返り値...
-
JUnit4のアノテーションについて
-
6桁の数字を重複なしでランダム...
-
JAVA エラー 式の開始が不正で...
-
java spring でエラーが出て困...
-
C#でバブルソート
-
プログラムの作り方
-
全組み合わせの出力
-
SwingでJtableのヘッダ行が表示...
-
アンマネージDLLで、ダイアログ...
-
c# デリゲート関連の命名について
-
複数のボタンを配置し、それぞ...
おすすめ情報