67301

Перевантаження оператора «()»

Лекция

Информатика, кибернетика и программирование

Можливо, найбільш інтригуючим оператором, якого можна перевантажувати, є оператор виклику функції "()". Під час його перевантаження створюється не новий спосіб виклику функцій, а операторна функція, якій можна передати довільну кількість параметрів.

Украинкский

2014-09-07

34.5 KB

0 чел.

Лекція № 12

Тема: Перевантаження оператора "()"

    Можливо, найбільш інтригуючим оператором, якого можна перевантажувати, є оператор виклику функції "()". Під час його перевантаження створюється не новий спосіб виклику функцій, а операторна функція, якій можна передати довільну кількість параметрів. Почнемо з такого прикладу. Припустимо, що певний клас містить наведене нижче оголошення перевантаженої операторної функції:

int operator()(int a, char *p);

І якщо у програмі створюється об'єкт obj цього класу, то настанова

obj(99, "перевантаження");

перетвориться в такий виклик операторної функції operator():

operator()(99, "перевантаження");

    У загальному випадку при перевантаженні оператора виклику функцій "()" визначаються параметри, які необхідно передати функції operator(). Під час використання оператора "()" у програмі задані аргументи копіюються в ці параметри.

    Як завжди, об'єкт, який здійснює виклик операторної функції (obj у наведеному прикладі), адресується показником this.

    Розглянемо приклад перевантаження оператора виклику функцій "()" для класу kooClass. Тут створюється новий об'єкт класу kooClass, координати якого є результатом підсумовування відповідних значень координат об'єкта і значень, що передаються як аргументи.

Приклад1. Демонстрація механізму перевантаження оператора виклику функцій "()"

class kooClass

{          int x, y, z;                 // Тривимірні координати

    public:

          kooClass() { x = y = z = 0; }

          kooClass(int c, int d, int f) {x = c; y = d; z = f; }

          kooClass operator()(int a, int b, int c);

          void Show(char *s);

};

     // Перевантаження оператора виклику функцій "()".

kooClass kooClass::operator()(int a, int b, int c)

{

kooClass tmp;                     // Створення тимчасового об'єкта

tmp.x = x + a;

tmp.y = y + b;

tmp.z = z + c;

return tmp;                        // Повертає модифікований тимчасовий об'єкт

}

     // Відображення тривимірних координат x, y, z.

void kooClass::Show(char *s)

{          cout << "Координати об'єкта <" << s << ">: ";

           cout << "x= " << x << ", y= " << y << ", z= " << z << endl;

}

void main()

{        kooClass ObjA(1, 2, 3), ObjB;

        ObjB = ObjA(10, 11, 12);         // Виклик функції operator()

        ObjA.Show("A");

        ObjB.Show("B");

}

   Внаслідок виконання ця програма відображає на екрані такі результати:

Координати об'єкта <A>: x= 1, y= 2, z= 3

Координати об'єкта <B>: x= 11, y= 13, z= 15

   Не забувайте, що при перевантаженні оператора виклику функцій "()" можна  використовувати параметри будь-якого типу, та і сама операторна функція operator() може повертати значення будь-якого типу. Вибір типу повинен диктуватися потребами конкретних програм.


 

А также другие работы, которые могут Вас заинтересовать

11075. Геометричні побудови на кресленнях. Спряження, їх види. Побудова овалів 35 KB
  Тема 5: Геометричні побудови на кресленнях. Спряження їх види. Побудова овалів. Мета: Навчальна: сформувати знання та навички креслення основних видів спряжень і оформлення креслень. Виховна: виховувати в учнів культуру праці та витримку в роботі. Розвиваюча: розв...
11076. Предмет безопасности жизнедеятельности. Основные понятия, термины и определения. Классификация опасных и чрезвычайных ситуаций 19.14 KB
  Предмет безопасности жизнедеятельности. Основные понятия термины и определения. Классификация опасных и чрезвычайных ситуаций Безопасность жизнедеятельности это область научных знаний изучающая общие опасности угрожающие человеку и разрабатывающая соответ
11077. Классификация основных форм деятельность человека 26.88 KB
  Труд целенаправленная деятельность человека на удовлетворение своих культурных и социально-экономических потребностей. Характер и организация трудовой деятельности человека оказывают существенное влияние на изменение функционального состояния организма человека. ...
11078. Понятие комфортных условий трудовой деятельности 21.75 KB
  Понятие комфортных условий трудовой деятельности Условия в которых трудится человек влияют на результаты производства производительность труда качество и себестоимость выпускаемой продукции. Производительность труда повышается за счет сохранения здоровья чел...
11079. Загрязнение регионов техносферы токсическими веществами 29.54 KB
  Загрязнение регионов техносферы токсическими веществами Регионы техносферы и природные зоны примыкающие к очагам техносферы постоянно подвергаются активному загрязнению различными веществами и их соединениями. Атмосферный воздух всегда содержит некоторое кол
11080. Воздействие вредных веществ на человека и среду обитания 32.39 KB
  Воздействие вредных веществ на человека и среду обитания Для создания нормальных условий труда необходимо обеспечить не только комфортные метеорологические условия но и необходимую чистоту воздуха. Вследствие производственной деятельности в воздушную среду пом
11081. Общая классификация чрезвычайных ситуация. Общая характеристика чрезвычайных ситуаций природного характера, классификация 24.79 KB
  Общая классификация чрезвычайных ситуация. Общая характеристика чрезвычайных ситуаций природного характера классификация Всю совокупность возможных чрезвычайных ситуаций целесообразно первоначально разделить на конфликтные и бесконфликтные. К конфликтным пр...
11082. Геофизические и геологические чрезвычайные ситуации 18.25 KB
  Геофизические и геологические чрезвычайные ситуации Землетрясения Это подземные толчки и колебания поверхности Земли вызванные естественными причинами главным образом тектоническими процессами или иногда искусственными процессами взрывы заполнение водохра
11083. Метеорологические и агрометеорологические чрезвычайные ситуации 155.5 KB
  Метеорологические и агрометеорологические чрезвычайные ситуации Опасное метеорологическое явление это природное явление возникающее в атмосфере под действием различных природных факторов или их совокупности могущее оказать поражающее воздействие на людей орга