I have class that has assignment to string operator.
class turbo
{
public:
operator string (void) {printf("assignment to string operator\n");return "bla2";}
};
Assignment operation works just fine:
turbo t;
string s;
s=t;
And I have "assignment to string operator" in output.
Then I decided to make another assignment operator to turbo
class turbo
{
public:
operator string (void) {printf("assignment to string operator\n");return "bla";}
operator turbo (void) {printf("assignment to turbo operator\n");return *this;}
};
But code below does not calls turbo assignment operator.
turbo t;
turbo tt ;
tt=t;
Why?
I know that I can overload = operator, but I expect operator turbo work also since string one is operating.
=operator (related reading: the rule of three).