선언 생성자 :앞으로 포인터 - 투 - 구조체 C++에서이 같은 선언이있는 제 3 자 라이브러리를 사용하고
class Foo
{
Foo(HandleType h);
}
이 HandleType를 정의하는 헤더를 포함없이. 일반적으로, 나는 단지 그런 타입을 선언하고 싶지만, 이것에 대한 구문을 이해할 수는 없다. 나는 다음과 같이 말하고 싶습니다 :
struct *HandleType;
그러나 GCC의 "예상 식별자는 * 전"입니다. 내가 볼 수있는 유일한 해결책은 내 수업을 다음과 같이 작성하는 것입니다.
struct __INTERNAL_DATA;
class Foo
{
Foo(__INTERNAL_DATA *h);
}
하지만 이것은 라이브러리의 내부 세부 정보를 사용합니다. 즉, 구현 세부 사항 인 __INTERNAL_DATA라는 이름을 사용합니다.
__INTERNAL_DATA (라이브러리 구현의 일부)를 사용하지 않고 HandleType (공용 API의 일부)을 전달 선언 할 수 있어야합니다. 누구나 알 수 있습니까?
편집 : 내가 찾고있는 것에 대한 자세한 내용을 추가했습니다.
그렇다면 변경하거나 완전히 제거 할 수있는 이름 인 __INTERNAL_DATA를 forward-declare해야합니다. (이후 라이브러리의 구현 세부 사항입니다.) –
그래서 당신이 아는 모든 HandleType 수 있습니다. – dirkgently
요구 사항이 명확하지 않아 어쩌면 세부 사항을 더 추가 할 수 있습니다. – dirkgently