Как получить доступ к выделенной памяти в классе через []
Подскажите пожалуйста, как получить доступ к выделенному массиву в классе через оператор [], а не через метод:
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]; }
Нужно ли писать проверку для выхода за границы массива - смотрите сами...