Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
| A1: | Outer::Inner::MyFunc(); |
| A2: | At the point the listing reaches HERE, the global version of X will be used, so it will be 4. |
| A3: | Yes, you can use names defined in a namespace by prefixing them with the namespace qualifier. |
| A4: | Names in a normal namespace can be used outside of the translation unit where the namespace is declared. Names in an unnamed namespace can only be used within the translation unit where the namespace is declared. |
| A5: | The using keyword can be used for the using directives and the using declarations. A using directive allows all names in a namespace to be used as if they are normal names. A using declaration, on the other hand, enables the program to use an individual name from a namespace without qualifying it with the namespace qualifier. |
| A6: | Unnamed namespaces are namespaces without names. They are used to wrap a collection of declarations against possible name clashes. Names in an unnamed namespace cannot be used outside of the translation unit where the namespace is declared. |
| A7: | The standard namespace std is defined by the C++ Standard Library. It includes declarations of all names in the Standard Library. |