web-dev-qa-db-ja.com

関数名の前に初期化子が必要です

#include <iostream>
#include <string>

using namespace std;

struct sotrudnik {
    string name;
    string speciality;
    string razread;
    int zarplata;
}

sotrudnik create(string n,string spec,string raz,int sal) {
    sotrudnik temp;
    temp.name=n;
    temp.speciality=spec;
    temp.razread=raz;
    temp.zarplata=sal;
    return temp;
}
*sotrudnik str_compare (string str1, string str2, sotrudnik sot1, sotrudnik sot2)

私はC++を学ぼうとしています。しかし、オプション "g ++ -Wall -c"を使用してGCC-4.4.5でこのコードをコンパイルしようとすると、次のエラーが発生します。

g ++ -Wall -c "lab2.cc"(ディレクトリ:/ home/ion/Univer/Cpp)

lab2.cc:11:エラー:createの前に初期化子が必要です
lab2.cc:20:エラー:str_compareの前にコンストラクタ、デストラクタ、または型変換が必要です
コンパイルに失敗しました。

どちらのエラーも関数宣言に関連しています。 (ラウンド11は関数createの宣言、ラウンド20は関数str_compareの宣言です)。これらの種類のエラーについてグーグルを試みましたが、エラーメッセージは非常に一般的であるため、同様のエラーの例を見つけることができませんでした。どうすればそれらの意味を理解し、解決することができますか?ご清聴ありがとうございました。

14
Ion

'struct'定義の最後にセミコロンがありません。

また、

*sotrudnik

する必要があります

sotrudnik*
28
bmargulies

構造の最後にセミコロンを追加してみてください:

 struct sotrudnik {
    string name;
    string speciality;
    string razread;
    int zarplata;
} //Semi colon here
0
Laura Doan