2010-12-13 5 views
3

내가 가지고 다음과 같은 오류 :오류 C3646 : '폐쇄': 알 수없는 재정의 지정

error C3646: 'closure' : unknown override specifier 

코드 :이 오류가 왜

void BaseOperator::mousebutton_cb(EventObject* sender, EventArgs* calldata, void* closure) 
{ 
    xd3D::Operation::Operator::BaseOperator* operator = (xd3D::Operation::Operator::BaseOperator*)closure; 
    MouseButtonEventArgs* e = (MouseButtonEventArgs*)calldata; 
    if (e->Status == Down) 
     operator->OnMouseButtonDown(e); 
    else 
     operator->OnMouseButtonUp(e); 
} 

당신은 알고 계십니까?

+1

요하네스의 설명이 맞습니다. 그래도 그건 재미있는 실수라고 생각합니다. –

답변

9

operator은 (는) 키워드입니다. operator = 시퀀스는 할당 연산자를 선언하려고합니다.이 경우에는 포인터 매개 변수 유형을 사용합니다. 그리고 컴파일러는 을 override (afaik는 MSVC 확장자)과 같은 특수 지정자로 해석하려고합니다 (const 등).

과 같이 변수의 이름을 바꿉니다.

+0

나는 SO가 유익하게 검은 색 대신에 진한 파란색으로'operator' 키워드를 유용하게 보았다는 것을 알았습니다. –

+0

@ 그렉 실제로, 나는 속였다 : –

+0

: - 바보 같은 거즈 : - D – Spectral

관련 문제