निम्न कोड एक, दो, तीन प्रिंट करता है। क्या यह सभी सी ++ कंपाइलर्स के लिए वांछित और सही है?स्कोप ब्लॉक समाप्त होने से पहले गैर-नामित सी ++ ऑब्जेक्ट्स क्यों नष्ट हो जाते हैं?
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");
}
डुप्लिकेट: http://stackoverflow.com/questions/1388685/local-variable-scope-question –