операторы — что означает и что означает «+ =» в С ++?

Я довольно новичок в C ++, и я читал и писал свой собственный код. Я вижу эти операторы время от времени, если это даже правильное слово для использования?

+= // Not sure what it means

Итак, мой вопрос: что они означают / делают, и как они называются?

Для дальнейшего ознакомления я хотел бы знать, как они называются, чтобы я мог легко найти их (например, поиск «+ =» ничего не дал).

Изменить: Для тех, кто не знает значения (или в моем случае знал их название), я нашел ссылку на Википедию, которая может пригодиться другим людям: http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B

-1

Решение

Да, это операторы. Более конкретно, они известны как составные операторы присваивания. Вот полный список из них:

*= /= %= += -= >>= <<= &= ^= |=

Они определены так:

Поведение выражения формы E1 op = E2 эквивалентно E1 = E1 op E2 Кроме этого E1 оценивается только один раз.

Так x += 5; почти так же, как x = x + 5;,

Вы можете думать об этом как о дополнении. Если вы просто делаете x + 5результат выражения — это то, что вы получите, если добавите x а также 5 вместе, но x не изменился Если вы делаете x += 5;, x на самом деле имеет 5 добавленных к его стоимости.

13

Другие решения

это просто сокращение:
a+=2; средства a=a+2;
конечно, столько же операторов: вы можете перегрузить его, чтобы придать ему альтернативное значение, и на самом деле мы часто это делаем, чтобы указать значение, например, в случае, когда это означает добавить int к нашему классу SomeClass:

SomeClass s;
s+=1; //operator+=(SomeClass& s, int i){} is used here

class A{
public:
A():i_(123){}
~A(){}
int i(){return i_;}
A const& operator+=(int i){
std::cout<<"operator+=";
this->i_=i_+i;
}
private:
int i_;
};int main(int argc, char** argv) {

A a1;
a1+=3;
std::cout<<a1.i();
return OK;
}

выход: оператор + = 126

0

По вопросам рекламы [email protected]