C++ const函数返回值必须为const引用

来源:互联网 发布:域名快速备案多少钱 编辑:程序博客网 时间:2024/05/16 09:59

编译正确代码:

#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\n", 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\n", s.c_str());}


原创粉丝点击