class foo
{
private:
int m_data;
public:
foo (int data=0): m_data (data) {}
foo (const foo& source): m_data (source.m_data) {}
foo (foo& source): m_data (std::move (source.m_data)) {}
// operator overloads: assign
foo& operator= (const int source) { m_data = source; return *this; }
foo& operator= (const foo& source) { m_data = source.m_data; return *this; }
foo& operator= (foo& source) { m_data = std::move (source.m_data); return this; }
// compound operator overloads: increment and assign
foo& operator+= (const foo& rhs) { m_data += rhs.m_data; return *this; }
foo& operator+= (const int rhs) { m_data += rhs; return *this; }
};
Copyright © 2026 eLLeNow.com All Rights Reserved.