编译错误之类型错误
错误:invalid initialization of reference of type 'const Quote&' from expression of type 'const key_type {aka const std::shared_ptr<Quote>}'
解释:用const std::shared_ptr<Quote>来初始化const Quote&是无效的。aka表示also known as。
解决方式:参数问题:把const Quote& 改成const std::shared_ptr<Quote>,在自己的代码中。
或者反过来修改,在源代码中。
或者加const 或者去掉&,总之就是把两个类型改成同一个。
类似错误:
error: binding 'const std::__cxx11::basic_string<char>' to reference of type 'std::__cxx11::string& {aka std::__cxx11::basic_string<char>&}' discards qualifiers
解释:把const string与string&绑定在一起丢弃了限定符。discards qualifiers表示丢弃限定符
解决方式:参照示例
#include <iostream> #include <string> #include <map> using namespace std; class Test { public: //const string &getValue(const int _key) const; 方式1 string &getValue(const int _key) const;//错误 把const string //转成const string& 丢弃限定符 //string &getValue(const int _key) const; 方式2 private: map<int,string> m_data; }; string &Test::getValue(const int _key) const { return m_data.find(_key)->second; } int main(int argc, char *argv[]) { return 0; }