erreur “extra qualification de l'étudiant::’ membre ‘étudiant’ [-fpermissive] ”

J'obtiens une erreur extra qualification ‘student::’ on member ‘student’ [-fpermissive].
Et aussi pourquoi name::name telle syntaxe est utilisée dans le constructeur?

#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();
}

OriginalL'auteur wizneel | 2012-07-27