Форум программистов, компьютерный форум CyberForum.ru

Полиморфизм - C++

Восстановить пароль Регистрация
 
mister2010
0 / 0 / 0
Регистрация: 23.05.2010
Сообщений: 64
23.05.2010, 18:55     Полиморфизм #1
Прочитал в Википедии что такое полиморфизм:
HTML5
1
Кратко смысл полиморфизма можно выразить фразой: «Один интерфейс, множество реализаций».
Смотрите 1 интерфейс, интерфейс- это методы и поля описанные внутри класса, как паблик.
А множество реализаций,это когда я создам экземпляр этого класса и через него обращусь к этим методам и полям?
Получается что я могу создавать разные объекты этого класса и получать доступ к методам и полям описанных в Этом классе.
Полиморфизм - это когда я могу создавать много разных объектов этого класса, и получать доступ к методам и полям класса, применяя эти методы и поля в разных целях в коде ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.05.2010, 18:55     Полиморфизм
Посмотрите здесь:

полиморфизм=( C++
C++ полиморфизм
C++ Полиморфизм
Полиморфизм. C++
Полиморфизм C++
C++ Полиморфизм
Полиморфизм C++
Полиморфизм C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
23.05.2010, 19:55     Полиморфизм #2
Примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <iostream>
using namespace std;
 
//Один интерфейс:
class IBaseInterface {
public:
virtual ~IBaseInterface(){} 
virtual void UnKnownFunc() = 0;
};
//------------------------------------------
//Остальное множество реализаций
 
 
//Реализация один.
class CComponent_I : public IBaseInterface {
public:
virtual ~CComponent_I (){} 
virtual void UnKnownFunc(){ cout<<"CComponent_I func\n"; }  
};
 
//Реализация два.
class CComponent_II : public IBaseInterface {
public:
virtual ~CComponent_II (){} 
virtual void UnKnownFunc(){ cout<<"CComponent_II func\n"; }     
};
 
//Реализация три.
class CComponent_III : public IBaseInterface {
public:
virtual ~CComponent_III (){} 
virtual void UnKnownFunc(){ cout<<"CComponent_III func\n"; }    
};
 
 
int main(){
IBaseInterface *mpPoly[3] = {new CComponent_I(),new CComponent_II(),new CComponent_III()};
//в каждой итерации вызываеться реализация соответсующего класса.
for( int p = 0 ; p < 3; p++ )mpPoly[p]->UnKnownFunc();
 
 
for( int i = 0 ; i < 3; i++)delete mpPoly[i];
return 0;
}
Все подробности в соответствующей литературе по C++.
Yandex
Объявления
23.05.2010, 19:55     Полиморфизм
Ответ Создать тему
Опции темы

Текущее время: 05:13. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru