[解決済み] トークン ']' の前に期待される一次式 [閉じた] 。
2022-01-30 02:26:24
質問
C++(Kdevelopプラットフォーム)のクラスを使って、aveの計算をする簡単なコードを書いてみました。 私のヘッダーファイルは以下の通りです。
#include <string>
class gradeBank
{
public:
gradeBank(std::string, float [], int n);
void setCourseName(std::string Coursename);
std::string getCourseName();
void gradeProcess();
float Max();
float Min();
double average();
//
private:
std::string Coursename;
int n; // n= number of students, size of grade-array
float grade[];
};
ヘッダファイルに関連する私のcppは。
#include <iostream>
#include <stdio.h>
#include "gradeBank.h"
//
gradeBank::gradeBank(std::string name, float gradeArray[], int n)
{
setCourseName(name);
float grade[n];
for (int i = 0; i < n; i++)
grade[i] = gradeArray[i];
}
//
void gradeBank::setCourseName(std::string name)
{
Coursename = name;
}
//
std::string gradeBank::getCourseName()
{
return Coursename;
}
//
void gradeBank::gradeProcess()
{
std::cout << "class average is: " << average() << std::endl;
std::cout << "Maximum grade is: " << Max() << std::endl;
std::cout << "minimum grade is: " << Min() << std::endl;
}
//
float gradeBank::Max()
{
float max = 0.0;
for (int i = 0; i < n; i++)
max = max > grade[i] ? max : grade[i];
return max;
}
//
float gradeBank::Min()
{
float min = 0.0;
for (int i = 0; i < n; i++)
min = min > grade[i] ? min : grade[i];
return min;
}
//
double gradeBank::average()
{
double sum = 0.0, ave;
for (int i = 0; i < n; i++)
sum += grade[i];
ave = sum / n;
return ave;
}
で、プログラム本体は
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <stdio.h>
#include "gradeBank.h"
#include <iostream>
//
int main()
{
std::string name;
int num, i;
float gradeArray[num];
std::cout << "Please enter the name of the course: ";
std::cin >> name;
std::cout << "Please enter number of students: ";
std::cin >> num;
for (i = 0; i < num; i++)
{ std::cout << "Studnet " << i << " : ";
std::cin >> gradeArray[i];
std::cout << std::endl;
}
gradeBank t1(name, gradeArray[], num);
t1.gradeProcess();
std::cin.get();
return 0;
}
次のようなエラーが発生しました。
In function ‘int main()’:
...e/main.cpp:23: error: expected primary-expression before ‘]’ token
ありがとうございました。
解決方法は?
配列を渡すとき、[ ]を付けてはいけません。ということで、以下のような行になります。
gradeBank t1(name, gradeArray, num);
など、特定の要素を渡したい場合のみ、[ ]を使用します。
gradeArray[5]
関連
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み] エラーが発生する。ISO C++は型を持たない宣言を禁じています。
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】Visual Studio 2013および2015でC++コンパイラーエラーC2280「削除された関数を参照しようとした」が発生する
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】C++11のラムダ式って何?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++でint型に無限大を設定する
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】「Expected '(' for function-style cast or type construction」エラーの意味とは?
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み】デバッグアサーションに失敗しました
-
[解決済み】Eclipse IDEでC++エラー「nullptrはこのスコープで宣言されていません」が発生する件