zoukankan      html  css  js  c++  java
  • 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\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());
    }


  • 相关阅读:
    zip
    yield
    日记
    cat
    genfromtext
    pytorch易忘
    小程序入门(一)
    (二)连接数据库使用Model对象对数据库进行操作(CRUD)
    (一)Moogose(node.js对数据库进行操作)
    CURD练习
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3052278.html
Copyright © 2011-2022 走看看