2013-07-06 2 views
0

공용 클래스 액세스 지정자 안에 함수 프로토 타입이 있습니다.함수 연산자 =는 멤버 함수 여야합니다

friend void operator=(String &s,char *str); 

문자열은이 프로토 타입 년대 클래스 : 이 프로토 타입입니다. 보시다시피 친구 기능입니다.

operator =' must be a non-static member // Error: operator= must be a member function 

내가 친구 속성을 제거 할 때 그것은 나에게이 오류 제공 :이 프로토 타입 잘못 무엇

error C2804: binary 'operator =' has too many parameters 

그것을 나에게 오류를 제공합니다이 방법을 유지함으로써? 현재 operator = function에 호출이 없으므로 함수 정의가 없어도 오류가 없어야합니다.

+4

'String & operator = (char * str); ' –

+2

그 동안 오류가 해결되었지만 왜 operator =() return void ?? – dans3itz

+0

@ dans3itz : 내 뇌가 "게으른 모드"로 바뀌 었습니다. :) 맞아요, 편집했습니다. –

답변

2

String 클래스의 일부인 경우 sooththing을 this으로 할당하므로 하나의 인수 만 사용합니다.

+1

그것은 String 클래스의 일부입니다. 나는 내 버전을하려고 노력하고있어. 당신의 방법을 시도했지만, 그것은 나에게 메모리 할당 오류를주었습니다. 그래서 아이디어를 버렸습니다. –

+0

@Andy, 고마워. –

+3

@RobertEagle : 오류가 발생하면 오류를 수정해야합니다. –