1. ホーム
  2. c++

[解決済み] C++エラー - 'char' と 'int' の前に一次式があることが予想されます。

2022-02-19 05:59:05

質問

#include<iostream>
#include<cstring>
using namespace std;
class Employee
{
    char name[5];
    int id;
    int age;
    public:
    Employee(char* a, int b, int c)
    {
        strcpy(name, a);
        id=b;
        age=c;
    }
};
class Officer: public Employee
{
    char officer_cadre[3];
    public:
    Officer(char* a, int b, int c, char* d):Employee(char* a, int b, int c)
    {
        strcpy(officer_cadre, d);
    }
};
int main()
{
   Officer o1("Nakul", 1, 2, "ABC");
   return 0;
}

上記のコードは単純ですが、コンパイラが「expected primary expression before char」や「expected primary expression before int」のようなエラーを投げる理由が分かりません。

どうすればいいですか?

この行に

  Officer(char* a, int b, int c, char* d):Employee(char* a, int b, int c)

その代わりに、a,b,c を宣言する構文を使っています。IEではそうする必要があります。

  Officer(char* a, int b, int c, char* d):Employee(a, b, c)

子クラスのコンストラクタに、誤って宣言をコピー・ペーストしてしまったのかもしれません。