forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			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 + 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;
 | 
						|
 | 
						|
}
 |