2011-04-15 19 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) 

मैं सी ++ सीखने की कोशिश करता हूं। लेकिन जब मैं विकल्प "जी ++ -Wall -c" का उपयोग करके जीसीसी-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 फ़ंक्शन str_compare फ़ंक्शन बनाने की कार्यवाही की घोषणा है)। इस तरह की त्रुटियों के लिए Google पर प्रयास किया, लेकिन समान त्रुटियों के उदाहरण नहीं मिल सका, क्योंकि त्रुटि संदेश बहुत सामान्य हैं। मैं उनके अर्थ को कैसे समझ सकता हूं और उन्हें कैसे हल कर सकता हूं? ध्यान देने के लिये धन्यवाद।

उत्तर

22

आप अपनी 'संरचना' परिभाषा के अंत में अर्धविराम खो रहे हैं।

इसके अलावा,

*sotrudnik 

जरूरतों

sotrudnik* 
+0

आपको बहुत बहुत धन्यवाद, मुझे लगता है कि याद किया। वैसे भी, दूसरी त्रुटि वही रहती है। क्या ऐसा इसलिए है क्योंकि मैंने बनाए गए संरचना प्रकार को रिटर्न पॉइंटर दिया है? – Ion

+2

ऐसा लगता है कि इस तरह की त्रुटि होती है जब सेमीकॉलन गायब होते हैं, ऐसे रहस्यमय सी ++। –

0

कोशिश अपने संरचना के अंत के लिए एक अर्ध बृहदान्त्र जोड़ने होने के लिए:

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

शायद मूल उत्तर में एक संपादन का सुझाव देना बेहतर होगा। – qxz

संबंधित मुद्दे