2011-04-15 61 views
8
#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" (in directory: /home/ion/Univer/Cpp)

lab2.cc:11: error: expected initializer before create
lab2.cc:20: error: expected constructor, destructor, or type conversion before str_compare
Compilation failed.

這兩個錯誤綁在函數聲明。 (第11輪是功能創建的聲明,第20輪 - 功能str_compare)。試圖谷歌這些類型的錯誤,但找不到類似的錯誤的例子,因爲錯誤信息是非常通用的。我如何理解它們的含義以及如何解決它們?非常感謝您的關注。

回答

22

您在「結構」定義的末尾缺少分號。

此外,

*sotrudnik 

需求是

sotrudnik* 
+0

非常感謝你,我錯過了。無論如何,第二個錯誤仍然是一樣的。是否因爲返回指向我創建的結構類型的指針? – Ion 2011-04-15 10:30:01

+2

看起來像這種類型的錯誤發生在分號丟失時,如神祕的C++。 – 2016-01-08 11:37:20

0

嘗試增加一個分號,以你的結構的末尾:

struct sotrudnik { 
    string name; 
    string speciality; 
    string razread; 
    int zarplata; 
} //Semi colon here 
+2

也許最好是建議編輯原始答案。 – qxz 2016-11-30 01:56:15