77 lines · cpp
1#include <stdio.h>2 3namespace Foo4{5 namespace Bar6 {7 class Baz8 {9 public:10 Baz (int value):m_value(value) {}11 int Function () 12 {13 printf ("%s returning: %d.\n", __FUNCTION__, m_value);14 return m_value + 1;15 }16 private:17 int m_value;18 };19 20 class Baz221 {22 public:23 Baz2 (int value):m_value(value) {}24 int Function () 25 {26 printf ("%s returning: %d.\n", __FUNCTION__, m_value);27 return m_value + 2;28 }29 private:30 int m_value;31 };32 33 static int bar_value = 20;34 int Function ()35 {36 printf ("%s returning: %d.\n", __FUNCTION__, bar_value);37 return bar_value + 3;38 }39 }40}41 42class Baz43{44public:45 Baz (int value):m_value(value) {}46 int Function () 47 {48 printf ("%s returning: %d.\n", __FUNCTION__, m_value);49 return m_value + 4;50 }51private:52 int m_value;53};54 55int56Function ()57{58 printf ("I am a global function, I return 333.\n");59 return 333;60}61 62int main ()63{64 Foo::Bar::Baz mine(200);65 Foo::Bar::Baz2 mine2(300);66 ::Baz bare_baz (500);67 68 printf ("Yup, got %d from Baz.\n", mine.Function());69 printf ("Yup, got %d from Baz.\n", mine2.Function());70 printf ("Yup, got %d from Baz.\n", bare_baz.Function()); 71 printf ("And got %d from Bar.\n", Foo::Bar::Function());72 printf ("And got %d from ::.\n", ::Function());73 74 return 0;75 76}77