| #include <stdio.h> | |
| namespace Foo | |
| { | |
| namespace Bar | |
| { | |
| class Baz | |
| { | |
| public: | |
| Baz (int value):m_value(value) {} | |
| int Function () | |
| { | |
| printf ("%s returning: %d.\n", __FUNCTION__, m_value); | |
| return m_value + 1; | |
| } | |
| private: | |
| int m_value; | |
| }; | |
| class Baz2 | |
| { | |
| public: | |
| Baz2 (int value):m_value(value) {} | |
| int Function () | |
| { | |
| printf ("%s returning: %d.\n", __FUNCTION__, m_value); | |
| return m_value + 2; | |
| } | |
| private: | |
| int m_value; | |
| }; | |
| static int bar_value = 20; | |
| int Function () | |
| { | |
| printf ("%s returning: %d.\n", __FUNCTION__, bar_value); | |
| return bar_value + 3; | |
| } | |
| } | |
| } | |
| class Baz | |
| { | |
| public: | |
| Baz (int value):m_value(value) {} | |
| int Function () | |
| { | |
| printf ("%s returning: %d.\n", __FUNCTION__, m_value); | |
| return m_value + 4; | |
| } | |
| private: | |
| int m_value; | |
| }; | |
| int | |
| Function () | |
| { | |
| printf ("I am a global function, I return 333.\n"); | |
| return 333; | |
| } | |
| int main () | |
| { | |
| Foo::Bar::Baz mine(200); | |
| Foo::Bar::Baz2 mine2(300); | |
| ::Baz bare_baz (500); | |
| printf ("Yup, got %d from Baz.\n", mine.Function()); | |
| printf ("Yup, got %d from Baz.\n", mine2.Function()); | |
| printf ("Yup, got %d from Baz.\n", bare_baz.Function()); | |
| printf ("And got %d from Bar.\n", Foo::Bar::Function()); | |
| printf ("And got %d from ::.\n", ::Function()); | |
| return 0; | |
| } |