有人可以告诉我为什么这不起作用吗?我的印象是 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()