class X
{
private:
string DATA;
.
.
.
const string read_entry( const string & s ) { return this->(DATA[1]); } //Error
}
这有什么问题?我正在尝试访问DATA字符串的索引,但是当我this->DATA[1]
时出现错误
答案 0 :(得分:3)
代码段中有两个问题:
()
周围非法DATA[1]
。将return this->(DATA[1]);
更改为return this->DATA[1];
。DATA[1]
的类型为char
,而不是string
。此外,在课程定义后添加;
。
答案 1 :(得分:1)
问题似乎是函数的返回类型。声明的类型为const string
,但索引为string
会返回char
。请尝试以下
char read_entry( const string & s ) { return this->DATA[1]; }
答案 2 :(得分:1)
一些事情:
函数的返回类型(const string)与您返回的类型(char)不匹配。在不知道这个功能的目的的情况下,我不知道到底要做什么修复。
你正在传递一个字符串&你的功能,但它没有在功能体中使用。这是什么目的?
您不需要明确引用'this','return DATA [1]'就足够了。
除非您非常确定DATA的长度,否则您应该使用DATA.at(1)而不是DATA [1],因为.at()会为您进行范围检查。如果没有这个,你可能会冒内存问题。
将来,请解释代码应该做什么,这样我们就可以理解为什么它看起来像这样。