logo
inf_otvety_24-40

Подписи методов и необязательные аргументы

Как и при объявлении функций, язык Си++ допускает определение в одном классе нескольких методов с одним и тем же именем, но разными типами и количеством аргументов. (Определение методов с одинаковыми прототипами в разных классах не вызывает проблем, поскольку пространства имен разных классов не пересекаются).

// определение класса комплексных чисел

class Complex

{

public:

int real; // вещественная часть

int imaginary; // мнимая часть

// прибавить комплексное число

Complex operator+(const Complex x) const;

// прибавить целое число

Complex operator+(long x) const;

};

В следующем примере вначале складываются два комплексных числа, и вызывается первая операция +. Затем к комплексному числу прибавляется целое число, и тогда выполняется вторая операция сложения.

Complex c1;

Complex c2;

long x;

c1 + c2;

c2 + x;

Аналогично можно задавать значения аргументов методов по умолчанию. Более подробное описание можно найти в лекции 5.