// in the header file... class MyClass { public: MyClass(); ~MyClass(); MyClass operator << ( const string& ); MyClass operator >> ( const string& ); } // in the .cpp file... MyClass::MyClass() {} MyClass::~MyClass() {} MyClass operator << ( const string& ) { // this causes an error: 'MyClass operator<<(const std::string&)' must take exactly two arguments } MyClass operator >> ( const string& ) { // same error }