간단한 질문,이 유효한 C + +입니다 :C++ 메소드 이름을 헤더의 클래스 이름으로 규정 할 수 있습니까?
class Foo
{
void Foo::doSomething();
};
질문의 요점은 : 그 클래스 이름과 두 번 콜론을 반복 사용하는 방법 이름 앞에 유효한 클래스 선언 안에?
g ++ 4.2.3을 사용하는 코드를 컴파일하는 데 문제가 있습니다. 코드를 파고 변경하기 전에 여기에 구문을 설명하는 것에 대한 참조를보고 싶습니다. 또는 컴파일러를 다운 그레이드합니다. 이것은 g ++ 3.3.6으로 빌드됩니다.
내가 겪고있는 오류는 (대략) :
Foo.h:3: error: extra qualification ‘Foo::’ on member ‘doSomething’
Google은했지만 뭔가를 생각해 내지 못했습니다. 나는 표준을 가지고 있지 않다. 그리고 내가 그랬더라도 권위있는 것을 찾기 위해 꽤 오래 걸릴 것이다. 저는 C++ 언어 변호사가 아닙니다.
Visual Studio (2008)는 "Foo ::"를 허용합니다. –
그래, 나도 알아.하지만 g ++을 사용하여 코드를 작성하려고하는데, 수락 여부에 따라 코드가 다를 수 있습니다. 또는 내 관점에서, VC는 무엇이든 받아들이는 것처럼 보이지만 g ++는 까다 롭습니다. :) – unwind
나는 Foo ::가 불필요하고 최악의 경우 유효하지 않았다고 말할 것입니다. 그러므로 제 의견으로는 삭제를 정당화 할 수 있습니다. – markh44