В целом вопрос в заголовке, не знаю что ещё добавить, кроме примера
Перегрузка как член класса:
class A
{
public:
int* some_arr;
int operator [](uint_t i)
{
return this->some_arr[i];
}
}
Перегрузка, как я себе представляю, как не член класса:
class A
{
// ...
public:
int* some_arr;
// ...
}
int operator [](const A& a, uint_t i) // либо поменять аргументы местами, поэтому-то и не уверен
{
return a.some_arr[i];
}
И если перегружать как не член класса, то, получается, нужно передавать экземпляр, но сначала нужно передавать экземпляр, а потом индекс, или наоборот? Или вообще нельзя?
Ответ
Нет:
16.5.5 Subscripting [over.sub]
1 operator[] shall be a non-static member function with exactly one parameter.
Комментариев нет:
Отправить комментарий