有人可以告诉我为什么这不起作用吗?我的印象是,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 *)'。这是你的完整代码吗?另外,“迭代器”在哪里声明? – 2013-03-26 07:40:02
不,它不是 - 我去掉大部分,使其更易于阅读和回答我的问题:-) – Supremacy 2013-03-26 07:44:52
你的示例代码应该是完整的,以及最小的和你显示的错误应该来自于你实际有代码在你的问题中没有你没有显示的一些不同的代码。这样做会使问题答案成为帮助您解决实际问题的战斗机会。 – 2013-03-26 07:49:30