El siguiente código imprime uno, dos, tres. ¿Es eso deseado y cierto para todos los compiladores de C++?¿Por qué se destruyen los objetos sin nombre de C++ antes de que finalice el bloque del osciloscopio?
class Foo
{
const char* m_name;
public:
Foo(const char* name) : m_name(name) {}
~Foo() { printf("%s\n", m_name); }
};
void main()
{
Foo foo("three");
Foo("one"); // un-named object
printf("two\n");
}
Duplicado: http://stackoverflow.com/questions/1388685/local-variable-scope-question –