چطوری میشه با کاما به یک کلاس مقدار داد ؟ - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

چطوری میشه با کاما به یک کلاس مقدار داد ؟

+2 امتیاز

سلام دوستان من دیدم توی boost وکتور این شکلی هم کار می کنه :

vector<int> v; 
v += 1,2,3,4,5,6,7,8,9;

چجوری این کار رو کردن ؟

سوال شده اسفند 9, 1392  بوسیله ی RED (امتیاز 494)   9 30 41
دوباره تگ گذاری شد مهر 9, 1393 بوسیله ی BlueBlade

1 پاسخ

+2 امتیاز
 
بهترین پاسخ

سلام کد شما به این شکل اجرا میشه :

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
}

 

پاسخ داده شده اسفند 9, 1392 بوسیله ی BlueBlade (امتیاز 15,315)   15 18 89
ویرایش شده اسفند 9, 1392 بوسیله ی BlueBlade
...