2011-04-15 30 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++ öğrenmeye çalışıyorum. Ama seçenekleri "g ++ -Wall -c" kullanarak GCC-4.4.5 ile bu kodu derlemeye çalıştığınızda, aşağıdaki hatayı alıyorum:Beklenen başlatıcı önce işlev adı

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.

Hem hatalar işlev bildirimleri bağlıdır. (yuvarlak 11, işlev yaratma bildirgesi, str_compare işlevinin yuvarlak 20'sidir). Bu tür hatalar için google'a başvurdum, ancak hata iletileri çok genel olduğundan, benzer hatalardan örnekler bulamadı. Anlamlarını ve nasıl çözüleceğini nasıl anlayabilirim? İlginiz için çok teşekkür ederim.

cevap

22

'struct' tanımınızın sonunda bir noktalı virgül eksik. Ayrıca

,

*sotrudnik 

ihtiyaçları

sotrudnik* 
+0

Bunu kaçırdım, çok teşekkür ederim. neyse, ikinci hata aynı kalır. Bu, oluşturduğum yapı tipine işaretçi döndürdüğü için mi? – Ion

+2

, bu tür bir gizemli C++, noktalı virgül eksik olduğunda bu tür bir hata gibi görünüyor. –

0

deneyin Yapınızın sonuna bir noktalı virgül ekleyerek olmak:

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

Belki de orijinal cevaba bir düzenleme önermek daha iyi olurdu. – qxz

İlgili konular