Рубрики

C ++ | Перегрузка оператора | Вопрос 9

#include<iostream>

using namespace std;

  

class Point {

private:

  int x, y;

public:

  Point() : x(0), y(0) { }

  Point& operator()(int dx, int dy);

  void show() {cout << "x = " << x << ", y = " << y; }

};

  

Point& Point::operator()(int dx, int dy)

{

    x = dx;

    y = dy;

    return *this;

}

  

int main()

{

  Point pt;

  pt(3, 2);

  pt.show();

  return 0;

}

(А) х = 3, у = 2
(B) Ошибка компилятора
(С) х = 2, у = 3

Ответ: (А)
Объяснение: Это простой пример перегрузки оператора вызова функции.

Оператор вызова функции, когда перегружен, не изменяет способ вызова функций. Скорее, он изменяет способ интерпретации оператора при применении к объектам данного типа.
Если вы перегрузите оператор вызова функции для класса, его объявление будет иметь следующую форму:

    return_type operator()(parameter_list) 

Тест на этот вопрос

Рекомендуемые посты:

C ++ | Перегрузка оператора | Вопрос 9

0.00 (0%) 0 votes