首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-10-14 
自定义类内对std::string的引用问题我自己定义了一个Test类:C/C++ code#includeiostream#include strin

自定义类内对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的引用不能加在临时对象上。

热点排行