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