** 편집 : 이것은 단지 LLVM으로 발생; gcc는 이것을 잘 지원합니다.대물-C++ : 그것은 목표 -C 클래스를 반환 공변 복귀를 사용하는 방법은 C++ 클래스를 정의하는 것이 가능하다?
다음을 고려하십시오.
오브젝티브 C 클래스 A와 B
B 우리는 보이는 C++ 관계의 계층을 원하는
A.
의 서브 클래스입니다 같은 : 그러나class X {
//...
public:
virtual A* getFoo();
};
class Y : public X {
//...
public:
B* getFoo();
};
,이 작업을 수행 할 경우,
error: virtual function 'getFoo' has a different return type ('Y *') than the function it overrides (which has return type 'X *')
궁금 해요 : 당신은 목표 - C 타입은 C++ 컴파일러를 혼란과 같은 오류가 발생합니다 누군가가 이것에 대한 해결책을 가지고 있다면? (분명히, 장기적으로 우리는 Objective-c 클래스에서 벗어날 것이지만, 오늘날은 그렇지 않습니다.)
P. This 내가 찾을 수있는 가장 비슷한 질문처럼 보이지만, 나는 그것이 다른 문제입니다 확신 해요.
아, 이것은 단지 LLVM으로 발생 http://llvm.org/bugs/show_bug.cgi?id= 10,309 –
다시 전환 할 수 없다면 g ++이 고정됩니다 때까지, 당신이 해결 방법으로 ID를 반환 할 수 같아요. –