맨위로가기

전방 선언

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 본문

전방 선언(Forward Declaration)은 컴퓨터 프로그래밍에서 아직 완전하게 정의되지 않은 식별자(identifier)를 미리 선언하는 것을 의미합니다. 여기서 식별자는 유형, 변수, 상수, 함수, 클래스 등이 될 수 있습니다.
전방 선언의 목적 및 장점


  • 컴파일 시간 단축: 헤더 파일에 불필요한 include를 줄여 컴파일 시간을 단축할 수 있습니다. 특히, 대규모 프로젝트에서 유용합니다.
  • 순환 의존성 해결: 서로를 참조하는 두 클래스 또는 함수 간의 순환 의존성 문제를 해결할 수 있습니다.
  • 캡슐화 개선: 클래스 정의를 감추고, 의존성을 최소화하여 더 나은 캡슐화를 제공합니다.
  • 코드 구성의 유연성: 함수나 클래스의 정의를 호출하는 코드보다 나중에 배치할 수 있어 코드 구성을 유연하게 만듭니다.

전방 선언의 사용 예시

  • 함수 전방 선언: 함수의 본체를 정의하기 전에 함수의 존재를 컴파일러에 미리 알립니다. 함수 원형(prototype)을 사용하여 작성합니다.
  • 클래스 전방 선언: 특정 클래스에서 다른 클래스를 포인터로 사용할 때, 해당 클래스가 필요하다는 것을 미리 알려줍니다. 클래스의 헤더 파일에서 다른 클래스의 헤더 파일을 include하지 않아도 됩니다.

주의 사항

  • 전방 선언된 클래스는 객체의 크기를 알 수 없으므로, 포인터나 참조 형식으로만 사용해야 합니다.
  • 전방 선언 후에는 반드시 해당 식별자에 대한 완전한 정의가 제공되어야 합니다.

예시 (C++)```c++

// A.h

class B; // 클래스 B 전방 선언

class A {

public:

B* b_ptr; // B 객체가 아닌 B 포인터 사용

};

// B.h

class A; // 클래스 A 전방 선언 (순환 의존성 해결)

class B {

public:

A* a_ptr;

};

```

위 예시에서 클래스 A와 B는 서로를 참조해야 합니다. 전방 선언을 사용하면 헤더 파일에서 서로를 include하지 않고도 순환 의존성 문제를 해결할 수 있습니다.

전방 선언


본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com