2016-03-19 6 views
-3

配列の添字が整数でなければならないというエラーが発生します。しかし、私はintになる添え字として私が使っているものを宣言していると確信しています。誰かが私がどこを台無しにしているのかを助けることができますか?これは.hファイルの.cppです。式において整数が宣言されているにもかかわらず、配列の添字が整数ではありません

Month::~Month() { 
int size = getNumberOfDays(); 
for (int i = 0; i < size; i++) { 
    events[i] = events["", 0, 0, ""]; 
} 
} 

void Month::deleteExistingEvent() { 
cout << "What is the day of the event you want deleted? (1-31) " << endl; 
int deleteDay; 
cin >> deleteDay; 
deleteDay = deleteDay - 1; 
events[deleteDay] = events["", 0, 0, ""]; 
} 
+1

これを[mcve]に減らしてください。あなたがそのようなコンパイラエラーのために多くのコードを必要とする方法はありません。 –

+1

そして*どこに*あなたはエラーを受け取りますか?無関係なコードを削除しようとしますか?そして*完全な*エラーメッセージを完全に、未編集で、可能な情報メモとともに含めるように質問を編集してください。また、いくつかの(結果的な)インデントで、コードを再フォーマットするのもいいかもしれません。 –

+3

'events [i] = events [" "、0、0、" "];'は意味がありません。あなたはそこで何をするつもりでしたか? –

答えて

1

events["", 0, 0, ""] 

operator[]は4つの引数で呼び出されます。 1つの議論しか取ることができません。だから、それは間違っていますが、エラーメッセージの説明はコンパイラがこれを解析する方法によって異なります。どうやらそれは単一のカンマ式​​を引数として解析します。その場合、最初の3つの値は破棄され、最後の1つは空の文字列リテラル""がインデックスとして使用されます。

+0

OPエラーメッセージは、 'events'が配列であることを示します。したがって、' operator [] 'は関係しません。それがあっても、operator []は2つの引数を取る。この場合( 'events'がクラス型の場合)、' events'が最初の引数になり、 '' "、0,0、" "'が2番目の引数になります。 –

+0

@ M.M申し訳ありませんが、ここであなたが言うのはちょうど**間違った**です。それは、議論の余地があります。 –

+0

母は太字で「間違っている」と言い、他の人が議論の的になっていると非難する。 –

関連する問題