Study/C++

선언과 정의

붕대마음 2010. 7. 8. 16:46
반응형

추가적인 상항으로 선언정의에 대해..
선언 : c++가 그 이름을 c++영역에 도입하거나 재도입 한다는 뜻.
         이러한 도입시에는 항상 그 이름의 부분분류가 포함되지만 세부사항이 꼭 필요하진 않다.
         ex)
              class c:                         c를 클래스로 선언
              void f(int p);                    f()를 p라는 파라미터를 갖는 함수로 선언
              extern int v;                    v를 변수로 선언
              goto create_fail;              이름을 갖긴 하지만 c++에서 선언으로 간주되지는 않는다.
              #define DATAPATH "d:"   이름을 갖긴 하지만 c++에서 선언으로 간주되지는 않는다.

         위의 예를 보면 매크로와 goto라벨은 이름을 갖긴 하지만 c++에서 선언으로 간주되지는 않는다.

정의 : 그 구조의 세부사항이 알려지거나 변수라면 저장공간이 할당될 때에 선언은 정의로 바뀐다.
         클래스나 함수인 경우 중괄호로 둘러싸인 몸체가 제공되어야 하고, 변수의 경우 초기화나 extern 없는 선언이 정의.