Mi código:Constructor no establece variable miembro
#include <iostream>
using namespace std;
class Foo
{
public:
int bar;
Foo()
{
bar = 1;
cout << "Foo() called" << endl;
}
Foo(int b)
{
bar = 0;
Foo();
bar += b;
cout << "Foo(int) called" << endl;
}
};
int main()
{
Foo foo(5);
cout << "foo.bar is " << foo.bar << endl;
}
La salida:
Foo() called
Foo(int) called
foo.bar is 5
Por qué no es el valor foo.bar
6? Foo()
se llama pero no establece bar
en 1. ¿Por qué?
'foo(); 'crea una objeto temporal sin nombre y lo destruye inmediatamente. ¿Qué es lo que esperabas que sucediera? – ildjarn