Content deleted Content added
m Substing templates: {{PDFlink}}. See User:AnomieBOT/docs/TemplateSubster for info. |
Tags: Mobile edit Mobile web edit |
||
Line 12:
All variables declared within a [[block (programming)|block]] of code are automatic by default. An uninitialized automatic variable has an [[undefined behavior|undefined]] value until it is assigned a valid value of its type.<ref>{{As of|2008|alt=Current}} {{cite web|url= http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf |title=C standard }} {{small|(3.61 [[Mebibyte|MiB]])}}: section 6.2.4, Storage durations of objects</ref>
In C++, the constructor of automatic variables is called when the execution reaches the place of declaration. The destructor is called when it reaches the end of the given program block (program blocks are surrounded by curly brackets). This feature is often used to manage resource allocation and deallocation, like opening and then automatically closing files or freeing up memory. See [[Resource Acquisition Is Initialization]] (RAII). Note, C++11 has a new auto specifier[http://en.cppreference.com/w/cpp/language/auto], which is different. In this case, the variable's type is [[type inference|inferred]].
|