Объектно-ориентированное программирование на языке С++. Ноткин А.М. - 47 стр.

UptoLike

Составители: 

48
Операции, перегружаемые внутри класса, могут перегружаться
только нестатическими компонентными функциями с параметрами. Вызы-
ваемый объект класса автоматически воспринимается в качестве первого
операнда.
Операции, перегружаемые вне области класса, должны иметь два
операнда, один из которых должен иметь тип класса.
Примеры.
1) class person{…};
class adresbook
{ // содержит в качестве компонентных данных множество объектов
типа //person, представляемых как динамический массив, список или
дерево
public:
person& operator[](int); //доступ к i-му объекту
};
person& adresbook : : operator[](int i){. . .}
void main()
{class adresbook persons;
class person record;
record = persons [3];
}
2) class person{…};
class adresbook
{ // содержит в качестве компонентных данных множество объектов
типа//person, представляемых как динамический массив, список или дерево
public:
friend person& operator[](const adresbook&,int);//доступ к i-му объекту
};
person& operator[](const adresbook& ob ,int i){. . .}
void main()
{class adresbook persons;
class person record;
record = persons [3];
}
                                      48

     • Операции, перегружаемые внутри класса, могут перегружаться
только нестатическими компонентными функциями с параметрами. Вызы-
ваемый объект класса автоматически воспринимается в качестве первого
операнда.
     • Операции, перегружаемые вне области класса, должны иметь два
операнда, один из которых должен иметь тип класса.

     Примеры.
     1) class person{…};
     class adresbook
     { // содержит в качестве компонентных данных множество объектов
типа      //person, представляемых как динамический массив, список или
дерево
        …
     public:
        person& operator[](int); //доступ к i-му объекту
     };
     person& adresbook : : operator[](int i){. . .}
     void main()
     {class adresbook persons;
       class person record;
       …
       record = persons [3];
     }

      2) class person{…};
      class adresbook
      { // содержит в качестве компонентных данных множество объектов
типа//person, представляемых как динамический массив, список или дерево
         …
      public:
        friend person& operator[](const adresbook&,int);//доступ к i-му объекту
      };
       person& operator[](const adresbook& ob ,int i){. . .}
      void main()
      {class adresbook persons;
        class person record;
        …
        record = persons [3];
      }