class CMyClass { CMyClass( int a = 0, int b = 0 ); }; class CMyClass2 { CMyClass2( int a = 0, int b = 0 ); CMyClass2( int a = 0 ); }; class CMyClass3 { CMyClass3( int a, int b = 0 ); CMyClass3( int a = 0 ); }; class CMyClass4 { CMyClass4( int a = 0, int b = 0 ); CMyClass4( short aa = 0, char * p = 0 ); }; class CMyClass5 { CMyClass5() = default; CMyClass5( int a = 0, int b = 0 ); CMyClass5( short aa = 0, char * p = 0 ); }; class CMyClass6 { CMyClass6( const CMyClass6& ) = default; CMyClass6( int a = 0, int b = 0 ); CMyClass6( short aa = 0, char * p = 0 ); }; class CMyClass7 { virtual void foo( const void* p = nullptr ) = 0; CMyClass7( int a = 0, int b = 0 ); CMyClass7( short aa = 0, char * p = 0 ); }; class CMyClass8 { CMyClass8( int a = 0, int b = 0 ); CMyClass8( short aa = 0, char * p = 0 ); virtual void foo( const void* p = nullptr ) = 0; }; class CMyClass9 { CMyClass9( int a = 0, int b = 0 ); CMyClass9( short aa = 0, char * p = 0 ); virtual void foo( const void* = nullptr ) = 0; }; class CMyClassA { CMyClassA( int a = 0, int b = 0 ); CMyClassA( short aa = 0, char * p = 0 ); virtual void foo( const void* /* p */ = nullptr ) = 0; }; class CMyClassB { CMyClassB( int a = 0, int b = 0 ); CMyClassB( short aa = 0, char * p = 0 ); virtual void foo( const void* /* p */ = NULL ) = 0; }; #define UNUSED(x) class CMyClassC { CMyClassC( int a = 0, int b = 0 ); CMyClassC( short aa = 0, char * p = 0 ); virtual void foo( const void* UNUSED(p) = NULL ) = 0; }; class CMyClassD { CMyClassD( int a = 0, int b = 0 ); CMyClassD( short aa = 0, char * p = 0 ); virtual void foo( const std::string s = "" ) = 0; }; class CMyClassE { CMyClassE( int a = 0, int b = 0 ); CMyClassE( short aa = 0, char * p = 0 ); virtual void foo( const std::string s = std::string() ) = 0; }; class CMyClassF { CMyClassF( int a = 0, int b = 0 ); CMyClassF( short aa = 0, char * p = 0 ); virtual void foo( const CString& s = _T( "" ) ) = 0; };