가능한 중복 :
What does “operator = must be a non-static member” mean? (C++)C++ 세계적으로 오버로드 된 연산자 =
안녕,
I가 다음 코드 ...// Header file
struct dataRecord{
size_t id;
char name[gcNameLength];
};
void operator=(dataRecord &adr, const dataRecord &bdr);
어떻게 이제까지의 gcc 나에게 팔로티를 준다. 컴파일 할 때 오류가 발생합니다.
error: ‘void operator=(dataRecord&, const dataRecord&)’ must be a nonstatic member function
도움 주셔서 감사합니다.
"비 정적 멤버 함수해야합니다 : 당신이 연산자를 오버로드 할 때 흐름을 중단하지 않을 것이며 expressios 같이 할 수 있도록 = 당신이, 왼쪽 피연산자에 대한 참조를 반환해야 함을
는주 "- 여기서 명확하지 않은 것은 무엇입니까? –
오류 메시지는이 경우 매우 정확하게 문제를 알려줍니다. '연산자 ='를 오버로드하려면 전역 함수로 사용할 수 없습니다. 비 정적 멤버 함수 (전역 변수를 사용하는 일반적인 이유는 왼쪽 피연산자에 대해 변환을 허용하는 것이지만 어쨌든 할당의 경우에는 적용되지 않습니다. –
그래서 구조체의 일부가 전역 일 수 없어야합니다. – Thomas