Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] одноименные методы в классе (http://forum.oszone.net/showthread.php?t=178616)

Glareone 19-06-2010 14:41 1437430

одноименные методы в классе
 
Доброго времени суток.
Есть необходимость объявить в классе несколько методов Add с разными аргументами. Можно ли так сделать?Не нарушается ли полиморфизм?
PS Про виртуальные методы знаю,но в моей задаче виртуальным его объявить не получится.

Код:

class Seq:public Prototype
{
 char *p;
 int t;
//....................
public:
 Prototype* clone() const {return new Seq (this);
 void Add(const Any&); //Any тоже потомок от Prototype
 void Add(char *p);
//............................................
}


Glareone 20-06-2010 09:14 1437743

Да.Такое возможно. Компилятор сам определяет,какой метод(или функцию) требуется вызвать по фактически вводимым аргументам. Называется это Разрешением перегрузки(или мнемоникой перегрузки).

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


Время: 13:27.

Время: 13:27.
© OSzone.net 2001-