读书人

自定义类内对std:string的引用有关问题

发布时间: 2012-10-14 14:55:08 作者: rapoo

自定义类内对std::string的引用问题
我自己定义了一个Test类:

C/C++ code
#include<iostream>#include <string>using namespace std;class Test{public:    Test(){}    Test(string &aStr):m_Str(aStr){}    const char& operator[](size_t aPos)const    {        return m_Str[aPos];    }    char& operator[](size_t aPos)    {        return m_Str[aPos];    }private:    string m_Str;};int main(){    Test t("test");//这里会出现error,const char*不能转化为string&    cout << t[0] << endl;    const Test lTest("Halen");    cout << lTest[1] << endl;}

等我修改为
C/C++ code
#include<iostream>#include <string>using namespace std;class Test{public:    Test(){}    Test(string aStr):m_Str(aStr){}    const char& operator[](size_t aPos)const    {        return m_Str[aPos];    }    char& operator[](size_t aPos)    {        return m_Str[aPos];    }private:    string m_Str;};int main(){    Test t(string("test"));    cout << t[0] << endl;    const Test lTest("Halen");    cout << lTest[1] << endl;}

就行了,这是为什么呢?求解答

[解决办法]
楼主这个基础真是稍微差了,竟然不知道非const的引用不能加在临时对象上。

读书人网 >C++

热点推荐