自定义类内对std::string的引用问题
我自己定义了一个Test类:
等我修改为
就行了,这是为什么呢?求解答
#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;
}等我修改为
#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的引用进行参数传递引发的编译错误
临时变量作为非const的引用进行参数传递引发的编译错误。相关文章:认识左值与常引用(http://www.eeskill.com/article/id/40046)。
Pair_class
Pair_class
cpp代码-C++:初始化列表:1.向数据成员传递值
cpp代码-C++:初始化列表:1.向数据成员传递值
cpp-JeayeSON非常健全的C14JSON库只包含头文件
JeayeSON:非常健全的 C 14 JSON库,只包含头文件
C++笔试题.txt
各个大公司的关于c和c++面试题汇总,是很多人心血的总结,希望对找工作的人有用!


