C++ 重载下标运算符 []

返回上一级

下标操作符 [] 通常用于访问数组元素

C++ 允许重载下标运算符 [] 用于增强操作 C++ 数组的功能

重载下标运算符 [] 最重要的作用就是设置一个哨兵,防止数组访问越界

/**
 * file: main.cpp
 * author: 简单教程(www.twle.cn)
 *
 * Copyright © 2015-2065 www.twle.cn. All rights reserved.
 */

#include <iostream>

const int SIZE = 10;

class Fibo
{
private:
    // 偷懒,防止把 SIZE 设置的过小
    int arr[SIZE+3];

public:

    Fibo() {

        arr[0] = 1;
        arr[1] = 1;

        int i = 2;
        for(; i < SIZE; i++)
        {
            arr[i] = arr[i-2] + arr[i-1];
        }
    }

    int& operator[](int i) {

        if( i > SIZE )
        {
            std::cout << "索引超过最大值\n"; 

            // 返回第一个元素
            return arr[0];
        }    
        return arr[i];
    }
};


int main()
{
   Fibo fb;

   std::cout << "fb[1] 的值为 : "  << fb[1]  << std::endl;
   std::cout << "fb[7] 的值为 : "  << fb[7]  << std::endl;
   std::cout << "fb[13] 的值为 : " << fb[13] << std::endl;

   return 0;
}

编译和运行以上范例,输出结果如下

fb[1] 的值为 : 1
fb[7] 的值为 : 21
fb[13] 的值为 : 索引超过最大值
1

返回上一级

C++ 基础教程

关于   |   FAQ   |   我们的愿景   |   广告投放   |  博客

  简单教程,简单编程 - IT 入门首选站

Copyright © 2013-2022 简单教程 twle.cn All Rights Reserved.