Редактировать: извините, я использовал «конструктор присваивания» вместо «оператор присваивания» в моем исходном посте. Исправлено сейчас.
Оказывается, что конструктор копирования вызывается вместо оператора присваивания в следующем коде. Кто-нибудь может сказать мне причину этого? Спасибо.
class A
{
int i;
public:
A(int ii) { i = ii; }
A(const A& a) { i = a.i; i++; }
A& operator=(const A& a) { i = a.i; i--; }
};
int main(void)
{
A a(4);
A b = a;
return 0;
}