• 类定义下标操作符时,为什么需要定义两个版本


    类定义下标操作符时,一般需要定义两个版本

    1. 作为类的非const成员函数,返回引用;

    2. 作为类的const成员函数,返回const引用。

    首先,什么是类的const成员函数,也就是不改变对象的成员函数。表示方法就是在类的成员函数的声明和定义后面加上const。

    类的有些对象可能可以改变,有的不能改变,举个例子来说,对于string对象来说,有的我们可能希望定义的string对象可以改变,有的则不能改变:

    string str1= "abcdefg";

    const string str2 = "abcdefg";

    我们如果进行下标操作符运算,str1[1]='d'这是允许的,而str2[1]='d'则是不允许的,这两个操作调用的成员函数也是不一样的,前一个调用的是string类的非const成员函数,后一个调用的是string类的const成员函数,如果我们没有定义const成员函数,则str2会调用相应的非const成员函数,从而导致我们本来不想其被修改的对象被意外修改。

  • 相关阅读:
    85. Maximal Rectangle
    120. Triangle
    72. Edit Distance
    39. Combination Sum
    44. Wildcard Matching
    138. Copy List with Random Pointer
    91. Decode Ways
    142. Linked List Cycle II
    异或的性质及应用
    64. Minimum Path Sum
  • 原文地址:https://www.cnblogs.com/hubavyn/p/4069842.html
Copyright © 2020-2023  润新知