Explicación detallada del operador de subíndice de C++

C++ estipula que el operador de subíndice [ ]debe sobrecargarse como función miembro. El formato de declaración de esta función sobrecargada en la clase es el siguiente:

返回值类型 & operator[ ] (参数);

const valor de retorno tipo& operador[ ] (parámetro) const;

Usando el primer método de declaración, [ ]no solo puede acceder al elemento, sino también modificarlo. Usando el segundo método de declaración, [ ]solo se puede acceder al elemento pero no modificarlo. En el desarrollo real, debemos proporcionar las dos formas anteriores al mismo tiempo. Esto se hace para adaptarnos a los objetos constantes, porque solo se pueden llamar funciones miembro constantes a través de objetos constantes. Si no se proporciona la segunda forma, entonces cualquier elemento del El objeto constante no será accesible. A continuación utilizamos un ejemplo específico para demostrar cómo sobrecargar [ ]. Sabemos que algunos compiladores más antiguos no admiten matrices de longitud variable, como VC6.0, VS2010, etc., lo que a veces trae inconvenientes a la programación. A continuación, implementamos matrices de longitud variable a través de una clase de matriz personalizada.

    #include <iostream>
    using namespace std;
    class Array{
    public:
        Array(int length = 0);
        ~Array();
    public:
        int & operator[](int i);
        const int & operator[](int i) const;
    publ

Supongo que te gusta

Origin blog.csdn.net/shiwei0813/article/details/132891412
Recomendado
Clasificación