2009-07-19 9 views
3

Qt의 간단한 그리기 위젯을 작업하고 있습니다 (다음은 모두 한 클래스 내에 있습니다). 헤더 파일에서 내가 Qt의 moc에서 "정의되지 않은 참조 :"오류가 발생했습니다.

private: 
QPointF translateToCanvas (QPointF input); 

을 정의하고, CPP 파일에 내가 코드에서 다른

QPointF translateToCanvas (QPointF input) { 
    return input - QPointF(CANVAS_MARGIN_X, CANVAS_MARGIN_Y); 
} 

어딘가를 정의한 내가 컴파일 할 때마다, 나는

QPointF newPoint = translateToCanvas(anotherPoint); 

으로이 전화 , 그것은 나에게 "MyClass :: translateToCanvas (QPointF) '에 대한 정의되지 않은 참조를 제공합니다. 그리고 이것은 moc이 생성하는 물건 내에서 일어나고 실제로는 문자 코드가 아닙니다.

Qt에서이 오류의 원인은 무엇입니까? (저는 Qt Creator를 Qt 4.5와 함께 사용하고 있습니다.)

답변

9

이것은 Qt와 아무 관련이 없습니다.

QPointF translateToCanvas (QPointF input) { 
    return input - QPointF(CANVAS_MARGIN_X, CANVAS_MARGIN_Y); 
} 

는 같은 이름을 가질 일이 아닌 당신이 당신의 클래스에 선언 된 개인 방법과 아무 상관이 translateToCanvas라는 이름의 독립 기능을 정의합니다. 원하는 분

QPointF MyClass::translateToCanvas (QPointF input) { 
    return input - QPointF(CANVAS_MARGIN_X, CANVAS_MARGIN_Y); 
} 
+1

감사합니다. 영혼을 찾기 위해 4 시간 동안 고맙습니다. – Buron

관련 문제