Лекция: Перегрузка унарных операций

Унарная функция-операция, определяемая внутри класса, должна быть представлена с помощью нестатического метода без параметров, при этом операндом является вызвавший ее объект.

Если функция определяется вне класса, она должна иметь один параметр типа класса.

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

 

ЗАДАЧА 4.1. Пусть операция ++x увеличивает действительную и мнимую часть комплексного числа x на 1, а x++ увеличивает на 1 только действительную часть комплексного числа x.

#include <iostream>

Using namespace std;

class complex {

float x; //Действительная часть комплексного числа.

float y; //Мнимая часть комплексного числа.

public:

complex(bool pr=true); //Конструктор класса

//Функция, перегружающая оператор ++x, в этом случае это метод без параметров.

complex operator++()

{

x++; y++; //Увеличиваем действительную и мнимую часть на 1.

return *this;

}

//Функция, перегружающая оператор x++, в этом случае это метод с абстрактным параметром

//целого типа. Наличие целого типа в скобках говорит только о том, что что перегружается //оператор x++, а не ++x.

complex operator++(int)

{

x++; //Увеличиваем действительную часть на 1.

return *this;

}

Show_complex();

};

еще рефераты
Еще работы по информатике