c ++访问此指针内的字符串索引

时间:2012-03-03 01:16:49

标签: c++ string this

class X
{
 private: 
    string DATA;

. 
.
. 

  const string read_entry( const string & s )   {   return this->(DATA[1]); } //Error


}

这有什么问题?我正在尝试访问DATA字符串的索引,但是当我this->DATA[1]时出现错误

3 个答案:

答案 0 :(得分:3)

代码段中有两个问题:

  1. ()周围非法DATA[1]。将return this->(DATA[1]);更改为return this->DATA[1];
  2. 错误的返回类型:DATA[1]的类型为char,而不是string
  3. 此外,在课程定义后添加;

答案 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()会为您进行范围检查。如果没有这个,你可能会冒内存问题。

  • 将来,请解释代码应该做什么,这样我们就可以理解为什么它看起来像这样。

相关问题