полиморфный тип и неполиморфный
От: INsideR Латвия  
Дата: 10.02.04 20:20
Оценка:
Чем отличается полиморфный тип от неполиморфного?
Мудр тот, кто знает не многое, а нужное
Re: полиморфный тип и неполиморфный
От: c-smile Канада http://terrainformatica.com
Дата: 10.02.04 20:59
Оценка: :))
Здравствуйте, INsideR, Вы писали:

INR>Чем отличается полиморфный тип от неполиморфного?


Полиморфизмом.
Re: полиморфный тип и неполиморфный
От: Шахтер Интернет  
Дата: 11.02.04 01:45
Оценка:
Здравствуйте, INsideR, Вы писали:

INR>Чем отличается полиморфный тип от неполиморфного?


Наличием хотя бы одного виртуального метода.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[2]: полиморфный тип и неполиморфный
От: c-smile Канада http://terrainformatica.com
Дата: 11.02.04 05:57
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Здравствуйте, INsideR, Вы писали:


INR>>Чем отличается полиморфный тип от неполиморфного?


Ш>Наличием хотя бы одного виртуального метода.


Я бы, коллега, ужесточил ваше определение: полиморфный класс это собственно любой абстрактный класс.

Re: полиморфный тип и неполиморфный
От: e-Xecutor Россия  
Дата: 11.02.04 06:24
Оценка:
Здравствуйте, INsideR, Вы писали:

INR>Чем отличается полиморфный тип от неполиморфного?


Смотря какой полиморфизм
Если статический шаблонный, то фактически любой тип,
реализующий определённые методы.

Если про "более классический" полиморфизм,
то для языка C++ наличие в классе виртуального
метода с большой степенью вероятности позволяет
говорить что класс полиморфный.
Re[3]: полиморфный тип и неполиморфный
От: Bell Россия  
Дата: 11.02.04 07:57
Оценка: +2
Здравствуйте, c-smile, Вы писали:

CS>Я бы, коллега, ужесточил ваше определение: полиморфный класс это собственно любой абстрактный класс.


Позволю себе, коллега, с вами не согласиться — ИМХО ваше ужесточение определения слишком жесткое
А то выходит, что если класс содержит виртуальные методы, но среди них нет "чистых", то это уже не полиморфный класс.
Любите книгу — источник знаний (с) М.Горький
Re[4]: полиморфный тип и неполиморфный
От: c-smile Канада http://terrainformatica.com
Дата: 11.02.04 08:13
Оценка: -1
Здравствуйте, Bell, Вы писали:

B>Здравствуйте, c-smile, Вы писали:


CS>>Я бы, коллега, ужесточил ваше определение: полиморфный класс это собственно любой абстрактный класс.


B>Позволю себе, коллега, с вами не согласиться — ИМХО ваше ужесточение определения слишком жесткое

B>А то выходит, что если класс содержит виртуальные методы, но среди них нет "чистых", то это уже не полиморфный класс.

Коллега! Позволю вам напомнить что не каждый класс содержащий виртуальные методы — полиморф.
Например некто может обявить методы виртуальными "за для" создания vtbl.
Полиморф это всегда суперкласс в иерархии. Просто класс с виртуальными методами не есть в самом общем случае это самое

Скажем так, для того что бы класс был полиморфным необходимо чтобы он имел виртуальные методы и достаточно чтобы он был абстрактным. Как вам такое определение, коллега?

А если зреть в суть то самый затрапезный union { unt i; char c } самый полиморфный полиморф с точки зрения банальной эрудиции.
Re[5]: полиморфный тип и неполиморфный
От: Lorenzo_LAMAS  
Дата: 11.02.04 08:29
Оценка: +2
Стандарт С++ полиморфным называет класс, имеющий виртуальные функции. Все остальное — это уже поэзия.
Of course, the code must be complete enough to compile and link.
Re[5]: полиморфный тип и неполиморфный
От: Bell Россия  
Дата: 11.02.04 08:32
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Скажем так, для того что бы класс был полиморфным необходимо чтобы он имел виртуальные методы и достаточно чтобы он был абстрактным. Как вам такое определение, коллега?


В целом неплохо , но я все-таки попробую развить мысль чуть дальше:
для того что бы класс был полиморфным, необходимо чтобы он имел виртуальные методы, и чтобы он принадлежал некой иерархии (наследования).
Вот.

CS>А если зреть в суть то самый затрапезный union { unt i; char c } самый полиморфный полиморф с точки зрения банальной эрудиции.

Нее, с таким union-ом нельзя работать "полиморфно", т.е.
union u{ unt i; char c }; 
u uu;
uu.c = '1';
int n = uu.i;


Или я что-то не так понял?
Любите книгу — источник знаний (с) М.Горький
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.