Ознакомьтесь с нашей политикой обработки персональных данных
19:19 

Доступ к записи ограничен

Закрытая запись, не предназначенная для публичного просмотра

19:58 

Доступ к записи ограничен

Закрытая запись, не предназначенная для публичного просмотра

08:57 

Заболекарь
Мегакрендель: заколебарь, жаболекарь, зомболекарь, лежебокарь
Как известно, в C эквивалентны a[i], i[a], *(a+i) и *(i+a). А ещё то же самое можно записать как a<:i:>, a??(i??), a[i:>, a[i??), a<:i], a<:i??), a??(i], a??(i:>, i<:a:>, i??(a??), i[a:>, i[a??), i<:a], i<:a??), i??(a] или i??(a:>.

Не следует, однако, полагаться на это в C++. Вот, скажем, объект x, для которого x[0], *x и *(x+0) дают три разных результата, а 0[x] и *(0+x) вообще не компилируются:

class X {
   class Y {
   public:
      int operator* () {return 43;}
   } y;
public:
   int operator[] (int i) {return 41;}
   int operator* () {return 42;}
   Y operator+ (int i) {return y;}
} x;


@темы: root@глупыйпингвин:~#

20:12 

Доступ к записи ограничен

Закрытая запись, не предназначенная для публичного просмотра

Теперь и в Краснодаре

главная