Как получить доступ к выделенной памяти в классе через []

Подскажите пожалуйста, как получить доступ к выделенному массиву в классе через оператор [], а не через метод:

  class my_class
    {
    
    public:
    
        char my_get_value(int i)
        {
            return my_char_p[i];
        }
    
    
    
        void my_set_size()
        {
            char* my_char_p = (char*)malloc(100);
        }
    
    
    private:
    
        char* my_char_p;
    };




 int main
    {
    my_class my_char_class;
    
    my_char_class.my_set_size();
    
    
    char my_char = my_char_class.my_get_value(9);  //И вот чтобы доступ к элементу получать не через метод класса, а через []
    
    char my_char = my_char_class[9];   //Вот так можно сделать ?
    }

Если так можно делать, подскажите тему, которую нужно прочитать.


Ответы (1 шт):

Автор решения: Harry
char operator[](int i) { return my_char_p[i]; }

Но лучше

char& operator[](int i) { return my_char_p[i]; }
const char& operator[](int i) const { return my_char_p[i]; }

Нужно ли писать проверку для выхода за границы массива - смотрите сами...

→ Ссылка