Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux / C++ const函数返回值必须为const引用

编译正确代码:#include<stdio.h>
#include <string.h>
#include<iostream>
using namespace std;class T{
 public:
  T(string p)
  {
   ptext = p;
  }
  const char & operator [](int pos) const
  {
   return ptext[pos];
  }
  string ptext;
};
int main()
{
 string s = "abcd";
 T t(s);
 //t[0] = "t";//因为为const返回类型,所以不能赋值
 printf("%s ", s.c_str());
}编译错误代码:#include<stdio.h>
#include <string.h>
#include<iostream>
using namespace std;class T{
 public:
  T(string p)
  {
   ptext = p;
  }
  char & operator [](int pos) const//返回类型不为const编译错误
  {
   return ptext[pos];
  }
  string ptext;
};
int main()
{
 string s = "abcd";
 T t(s);
 //t[0] = "t";//因为为const返回类型,所以不能赋值
 printf("%s ", s.c_str());
}