under Linux 2.6.20, KUbuntu Gutsy with gcc 4.1.3 compiling for use on linux
#if 0 //first here: //g++ accepts to compile no parameter name is given anytime (not in the class definition neither in the constructor implementation) //the program runs ok though #include <iostream> using namespace std; class Hop { public: Hop(string); void fct(string); }; Hop::Hop(string) {} void Hop::fct(string) {} int main() { Hop a("txt"); return 0; } #endif #if 1 //second: when using an option parameter for constructor //if we use this parameter name again for member initialisation and it's the same as a data member name //this gives no compile pb //+a crash when running #include <iostream> using namespace std; class Hop { public: Hop(string msg="no_msg"); void sayMsg(); string msg; }; Hop::Hop(string):msg(msg) {} void Hop::sayMsg() { cout << "msg is:"<<msg<<"-done" <<endl; } int main() { Hop a("yo"); Hop b(""); a.sayMsg(); b.sayMsg(); return 0; } #endif -- Summary: when data member name is same as parameter name, possible to omit parameter name in constructor without warning Product: gcc Version: 4.1.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: myselfhimself at free dot fr http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34307