obj.num has 2 different values but the value of y doesn't change. Does this have to do with initialization vs. assignment? It's something I can't quite wrap my head around.
class A {
public:
int num;
A(int num): num(num) {}
};
int get_number(int x) {
A obj = A(x);
static int y = obj.num;
return y;
}
int main() {
std::cout << get_number(2) << std::endl;
std::cout << get_number(3) << std::endl;
return 0;
}