2011-04-15 62 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