2013-10-16 2 views
0

Qstring의 메인 윈도우 클래스 (또는 다른 클래스)에 + 연산자를 오버로드하고 싶습니다. 이것은 내가 지금까지 무엇을했는지 있습니다 :QString, Qt의 오버로드 + 연산자

void operator+(QString a,QString b) 
{ 
    qDebug()<<"works"; 
} 

하지만 것은 QString + 연산자는 이미 (내 생각, 연결하는) 오버로드입니다. 위 코드를 사용하면 모호성이 발생합니다 (두 서명이 동일 함). QString을 보관할 새 클래스를 만들지 않고 실제 함수를 내 함수로 재정의하려면 어떻게해야합니까?

+0

는 슈퍼 클래스 –

+0

의 구현을 덮어 쓰기해야 구현 난 그냥 내 mainwindow.cpp에 의 표시 에러 코드를 입력 한 : '연산자 +'에 대한 모호한 과부하를 ..... –

답변

1

시도 QString operator+(QString a,QString b). 오버로드 된 함수의 반환 유형은 void가 아니라 QString입니다. 컴파일러는 두 가지 오버로드간에 다를 수 없으며 반환 유형에 따라 다릅니다. 서브 클래스에서이 만든 경우

+0

동일한 오류 : '연산자 +'에 대한 모호한 오버로드 (피연산자 유형은 QString 및 QString입니다.); –