77 lines
1.4 KiB
C++
77 lines
1.4 KiB
C++
#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;
|
|
}
|
|
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;
|
|
}
|
|
private:
|
|
int m_value;
|
|
};
|
|
|
|
static int bar_value = 20;
|
|
int Function ()
|
|
{
|
|
printf ("%s returning: %d.\n", __FUNCTION__, bar_value);
|
|
return bar_value;
|
|
}
|
|
}
|
|
}
|
|
|
|
class Baz
|
|
{
|
|
public:
|
|
Baz (int value):m_value(value) {}
|
|
int Function ()
|
|
{
|
|
printf ("%s returning: %d.\n", __FUNCTION__, m_value);
|
|
return m_value;
|
|
}
|
|
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;
|
|
|
|
}
|