#include<bits/stdc++.h>
using namespace std;
class numbered{
public:
int value;
numbered(){}
numbered& operator= (const numbered& n){
this->value=n.value+1;
return *this;
}
numbered (const numbered& n){
this->value=n.value+2;
}
};
int main(void){
numbered n1;
n1.value=15;
numbered n2=n1;
numbered n3;
n3=n1;
cout << n2.value <<endl;
cout << n3.value <<endl;
return 0;
}
Above this code segment, why does numbered n2=n1
call copy constructor while numbered3 n3;n3=n1;
calls copy-assignment operator. Both of two variables, n2 and n3, are assigned by =
. So what is the difference between two of them?