سلام کد شما به این شکل اجرا میشه :
v += 1,2,3;
(((v+=1),2),3)
و توی c++ میشه , رو هم overload کرد .
توی کد بالا اول operator += انجام میشه بعد operator,
پس به شکل زیر میشه همچین کلاسی رو ساخت :
#include <iostream>
class A
{
public:
A()
{}
A(const char& ch)
{
str_=ch;
}
A& operator+=(const char& ch)
{
str_ += ch;
return *this;
}
A& operator+(const char& ch)
{
this->operator+=(ch);
return *this;
}
A& operator,(const char& ch)
{
str_ += ch;
return *this;
}
std::string str()
{
return str_;
}
private:
std::string str_;
};
int main()
{
A a;
a += 'h','a','f','t';
std::cout<<a.str();//khorooji --> haft
}