Overloading reference operator

Andrew Haley aph@redhat.com
Sun Apr 25 09:53:00 GMT 2010


On 04/24/2010 07:07 PM, Andrew Haley wrote:
> On 04/24/2010 06:30 PM, Samkit Jain wrote:
>> template<class T>
>> MyClass
>> {
>>  public:
>>     MyClass() : m_data(10) { }
>>     operator T&() { return m_data; }
>>  private:
>>     T m_data;
>> };
> 
> I think this example does what you want:
> 
> template<class T> class
> MyClass
> {
> public:
>   MyClass() : m_data(10) { }
>   operator T&() { return m_data; }
>   T& operator= (const T &t) { m_data = t; return *this; }
> private:
>   T m_data;
> };

I'm sorry, I think I misunderstood your question.  You're asking why

  instance++;

works, but, say

  instance = instance + 1;

doesn't.  Apologies.

Andrew.



More information about the Gcc-help mailing list