2012-07-27 16 views
12

मुझे त्रुटि extra qualification ‘student::’ on member ‘student’ [-fpermissive] मिल रही है।
और क्यों name::name ऐसे वाक्यविन्यास का उपयोग कन्स्ट्रक्टर में किया जाता है?त्रुटि "अतिरिक्त योग्यता" छात्र :: 'सदस्य' छात्र '[-fpermissive] "

#include<iostream> 
#include<string.h> 
using namespace std; 
class student 
{ 
private: 
    int id; 
    char name[30]; 
public: 
/* void read() 
    { 
     cout<<"enter id"<<endl; 
     cin>>id; 
     cout<<"enter name"<<endl; 
     cin>>name; 
    }*/ 
    void show() 
    { 
     cout<<id<<name<<endl; 
    } 
    student::student() 
    { 
     id=0; 
     strcpy(name,"undefine"); 
    } 
}; 
main() 
{ 
student s1; 
// s1.read(); 
cout<<"showing data of s1"<<endl; 
s1.show(); 
// s2.read(); 
    //cout<<"showing data of s2"<<endl; 
//s2.show(); 
} 

उत्तर

30

इन-वर्ग के सदस्य समारोह (रों)/निर्माता (रों) की परिभाषा/नाशक student:: के रूप में योग्यता ऐसी आवश्यकता नहीं है।

तो यह कोड,

student::student() 
{ 
    id=0; 
    strcpy(name,"undefine"); 
} 

इस होना चाहिए:

student() 
{ 
    id=0; 
    strcpy(name,"undefine"); 
} 

योग्यता student:: केवल आवश्यक है यदि आप कक्षा के बाहर सदस्य कार्यों को परिभाषित है, आमतौर पर .cpp फ़ाइल में।

+0

ऐसी योग्यता का उपयोग क्या है या जब हमें इसे – wizneel

+2

@ user1306088 का उपयोग करना है: योग्यता 'छात्र ::' केवल तभी आवश्यक है जब आप क्लास के बाहर फ़ंक्शन को परिभाषित करते हैं, आमतौर पर .cpp फ़ाइल में। – Nawaz

2

यह सही होगा अगर कन्स्ट्रक्टर की परिभाषा कक्षा परिभाषा के बाहर दिखाई देगी।

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

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