class X
{
int i;
public:
X(int m) : i(m) {};
X(const X& x)
{
//cout "copy constructor is called\n";
}
const X opearator++(X& a,int)
{
//cout "X++ is called\n";
X b(a.i);
a.i++;
return b;
}
void f(X a)
{ }
};
int main()
{
X a(1);
f(a);
a++;
return 0;
}
Здесь, когда вызывается функция 'f', вызывается конструктор копирования, как и ожидалось.В случае ++ вызывается функция operator ++, но когда она возвращает «конструктор копирования не вызывается».почему «конструктор копирования не вызывается при возврате из функции« оператор ++ »?