내가 thusly 히 친구를 선언 할 때 g ++ 컴파일러는이 오류와 함께 불만을 선언 할 때 클래스 키를 선언해야합니다친구
friend MyClass;
대신
friend class MyClass;
을 왜해야 클래스 키워드가 필요합니까? (볼랜드 C++ 컴파일러 인 BTW는 필요하지 않습니다.)
컴파일러는 단순히 심볼 테이블에서 MyClass를 찾아 클래스로 선언했다고 말할 수 있습니까? (그것은 분명히 MyClass가 선언하지 않았을 때 불평하기 때문에 어쨌든 look-up을하고있다)
나는 클래스의 forward 선언을 만드는 것과 같지 않다 : 나는 여전히 위의 클래스를 선언했거나 적어도 선언해야한다. 앞으로 그것을 선언했다. 그렇지 않으면 그것은 단지 나 구문 소금 것 같아,
그것은 나에게 의미를 것이다 (실제로 좋은 것)
friend class MyClass;
가 필요한 경우 앞으로 선언을 만드는 경우.
나는 명랑하게 거의 20 년 동안 어떤 컴파일러 불만을 가진 클래스 또는 구조체 키워드없이 친구에게 문을 사용하고있다. 이것은 상당히 새로운 것입니까?
20 년! 당신은 Bjorn과 함께 일했음에 틀림 없습니다. –
1989 년 대학원 때 C 프론트를 사용했습니다. 저는 1991 년 이래로 대부분 Borland C++를 사용했습니다. –
@Martin : Bjorn ?! Lol. –