누군가가 왜 이것이 작동하지 않는지 말해 줄 수 있습니까? 나는 C++이 값에 의한 리턴 값 결과의 참조를 생성자에 자동으로 전달한다는 인상하에 있었지만, 일치하는 연산자가 없다고 불평했다.C++ 연산자를 찾을 수 없음
class bucket_string {
public:
bucket_string();
bucket_string(bucket_string & rhs);
bucket_string & operator=(bucket_string & rhs);
virtual ~bucket_string();
bucket_string substr(iterator start, iterator end){
bucket_string b(str);
return b;
}
};
bucket_string bs("the quick brown fox jumps over the lazy dog");
bucket_string bs1 = bs.substr(bs.begin(), bs.end());
다음과 같은 오류를 반환
error: no matching function for call to ‘bucket_string::bucket_string(bucket_string)’
note: candidates are: bucket_string::bucket_string(bucket_string&)
bucket_string::bucket_string()
'bucket_string :: bucket_string (const char *)'과 일치하지 않는다는 오류 메시지가 표시되지 않는다는 것에 놀랐습니다. 이 코드가 완전한 코드입니까? 또한,'iterator'가 선언 된 곳은 어디입니까? –
아니요 - 대부분의 내용을 쉽게 읽고 질문에 대답 할 수 있도록 제거했습니다 :-) – Supremacy
예제 코드는 최소한으로 완벽해야하며 보여주는 오류는 실제로 가지고있는 코드에서 가져와야합니다 귀하의 질문에 당신이 보여주지 않은 다른 코드가 아닙니다. 이렇게하면 질문에 답하는 것이 실제 문제를 해결할 수있는 기회가됩니다. –