String_Data 클래스에 대해 내 프로젝트에서 == 연산자를 재정의하려고합니다. String_Data에는 String_Data 객체에 보관 된 문자열을 반환하는 getString() 메서드가 있습니다. 두 String_Data 개체에 의해 보유 된 문자열을 비교하려면 내 == 재정의이 메서드를 호출하려면 노력하고있어. 그러나이 작업을 수행 할 때 인수로 사용하는 String_Data 객체에는 해당 메서드가 없다는 메시지가 표시됩니다. 무엇이 잘못 될지는 모르겠지만 어떤 도움을 주시면 감사하겠습니다. 여기 내 코드가있다.== 연산자를 오버라이드하는 동안 동일한 클래스의 메서드를 호출 할 수 없습니다. C++
#include "stdafx.h"
#include <vector>
#include <sstream>
#include "String_Data.h"
using namespace std;
std::string myString;
int stringCount;
String_Data::String_Data(std::string URL, int useCount)
{
stringCount = useCount;
myString = URL;
}
String_Data::~String_Data(void)
{
}
bool operator == (String_Data sd, String_Data sd2) {
return (sd.getString() == sd2.getString());
}
std::string getString() {
return myString;
}
void increment() {
stringCount++;
}
bool compare() {
}
int getCount() {
return stringCount;
}
사전에 도움을 주셔서 감사합니다.
. 그것을 포함하고 컴파일러 오류 –
같음 연산자 대신 _override_보다는 _overload_를 원하는 것 같습니다. 유사한 이름이지만 다소 관련이 있지만 상당히 다릅니다. 게시 한 코드는 클래스 선언을 표시하지 않으며 게시 된 getString() 함수는 멤버가 아닙니다. –
@ DietmarKühl 메소드가 인라인을 사용하여 클래스 선언 중간에있는 경우 일 수 있습니다. –