중첩 클래스 전방 선언: 불가능한 작업
C에서 내부 클래스는 코드를 구성하는 편리한 방법이 될 수 있습니다. 그러나 바깥쪽 클래스 정의 외부에서 참조로 내부 클래스 개체를 전달하려고 하면 컴파일 오류가 발생할 수 있습니다. 이는 호출 함수에서 내부 클래스를 사용하기 전에 컴파일러에서 내부 클래스를 완전히 정의하거나 선언해야 하기 때문입니다.
다음 코드를 고려하세요.
class Container { public: class Iterator { ... }; ... };
Iterator를 전달하려는 경우 Container 클래스 범위 밖의 함수에서 객체를 참조로 사용하는 경우 직관적으로 Iterator 클래스 선언을 시도할 수 있습니다.
class Container::Iterator; class Foo { void Read(Container::Iterator& it); };
그러나 이는 알 수 없는 유형 Iterator로 인해 컴파일 오류로 인해 접근 방식이 실패합니다.
전방 선언 제한
C에서 전방 선언은 중첩된 클래스가 아닌 클래스 자체를 선언하는 데만 사용할 수 있습니다. 회원. 이러한 제한으로 인해 내부 클래스의 전방 선언이 방지됩니다.
솔루션
이 문제를 해결하려면 대체 전략을 고려하십시오.
위 내용은 C의 중첩 클래스를 해당 클래스 외부에서 사용하기 위해 전달 선언할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!