7.24(화) C++ 기초문법 - namespace

from Study/C++ 2007/07/24 16:52 view 22498

3교시

// Namespace
문법에관해서

// 1. 개념

// 프로그램을논리적인구조로구별하기위한문법

// 아울러이름충돌을막을수있다.

// 2. 함수접근방법

//    1. 완전한이름사용

//    2. using 선언(Declaration 사용)

//    3. using 지시어(Directive 사용)


namespace Audio_System

{

        void foo()

        {

               cout << "Audio" << endl;

        }

}

namespace Video_System

{

        void foo()

        {

               cout << "Video" << endl;

        }

}

void main()

{

    Audio_System::foo();

    using Audio_System::foo;


   
using namespace Video_System;
    // using
지시어: namespace 에있는함수모두를이름없이접근할수있다.

 

    foo();

}


// 3. 인자기반탐색( 퀴니크look up )

namespace Graphics

{

        struct Rect

        {

        };

        void Draw( Rect r )

        {

        }

}

 

void main()

{

        Graphics::Rect r;

 

        Draw( r );             // 될까? 자동으로r이속한namespace를검색한다.

        // namespace 를뒤진다.(연산자지정때유용하게사용한다.)

}

 

// 4. namespace 별명(Alias) 과 라이브러리의선택적사용

namespace MathLibray

{

        int plus( int a, int b )

        {

               return 0;

        }

}


//
라이브러리의교체가편해진다.

namespace MathLibray_Ver2

{

        int plus( int a, int b )

        {

               return 0;

        }

}


void
main()

{

        namespace Math = MathLibray_Ver2;     //별명Math로지정해준다.

        Math::plus( 1, 2 );

}



// 5. namespace 함수의외부구현- 클래스보다가벼운이름을묶어놓는공간


namespace AAA

{

        void foo();

}

void AAA::foo()

{

}


// 6. namespace 는열려있다. - 되도록이름을복잡하게만들어라!!

namespace A

{

        void foo() {}

}

 

//다른파일에서or 같은파일에서namespace를추가하게된다.(방지하기위해서는이름!!)

namespace A

{

        void goo() {}

}

 

// 7. namespace std

//#include <iostream.h>       // cout, endl 이전역공간에있다.

#include <iostream>           // cout, endl std라는이름공간에있다.

 

void main()

{

        std::cout << std::endl;

}

 

Tag |

Trackback Address :: 이 글에는 트랙백을 보낼 수 없습니다