Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.02.2013, 16:43   #31
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Это неправильная классификация. Так как в жизни я не могу поменять что-то в кошке, чтобы она стала обладать свойствами собаки (то есть стала собакай).
Ты путаешь омлет с яичницей )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.02.2013, 19:36   #32
_Bers
Старожил
 
Регистрация: 16.12.2011
Сообщений: 2,329
По умолчанию

Цитата:
Сообщение от 8Observer8 Посмотреть сообщение
to _Bers

На модель катит. Но без сокрытия данных не будет правильной классификации.

to ROD
to Stilet

Это неправильная классификация. Так как в жизни я не могу поменять что-то в кошке, чтобы она стала обладать свойствами собаки (то есть стала собакай). Есть свойства, которые отличают собак от кошек. Одно дело, когда мы договариваемся не трогать эти свойства. А другое, когда нам это непозволено (в этом случае будет правильная классификация). Так как концепция ООП об неизменении отличительных свойств (по которым мы классифицировали) будет выполнена и обеспечена средствами языка.

На самом деле на статическом языке не возможно уже ничего ни прибавить, ни отнять у модели.

а на опп, которые поддерживают рефлексию.. там такое возможно. И насколько я знаю, никакие модификаторы от изменений объекта уже не спасут)

В общем, для меня любые объекты классифицируются по описаниям собственных классов) Это понимания вполне достаточно для работы)
_Bers вне форума Ответить с цитированием
Старый 07.02.2013, 02:08   #33
_SOKOL_
Пользователь
 
Регистрация: 02.02.2013
Сообщений: 44
По умолчанию

по моему понятие полиморфизма немного не так сказано
я понимаю это так: возможность родительного класса, использовать методы дочерних классов
_SOKOL_ вне форума Ответить с цитированием
Старый 07.02.2013, 02:25   #34
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
На самом деле на статическом языке не возможно уже ничего ни прибавить, ни отнять у модели.
это которые?

вообще реализовать это можно все и на С, и на С++, правда не столь красиво.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 07.02.2013, 08:42   #35
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
я понимаю это так: возможность родительного класса, использовать методы дочерних классов
С точностью да наоборот.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 07.02.2013, 09:03   #36
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от ROD Посмотреть сообщение
С точностью да наоборот.
С точностью до так оно и есть - полифоморфизм позволяет из старого кода вызывать новый.
waleri вне форума Ответить с цитированием
Старый 07.02.2013, 10:28   #37
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,323
По умолчанию

Цитата:
Сообщение от _SOKOL_ Посмотреть сообщение
по моему понятие полиморфизма немного не так сказано
я понимаю это так: возможность родительного класса, использовать методы дочерних классов
Да всё верно - это динамический полиморфизм. Посмотрите пример из сообщения #3.

Определение:
Цитата:
Полиморфизм - способность объектов по-разному реагировать на одинаковые действия.
Это определение более общее.

Есть ещё статический полиморфизм. Я приводил примеры.

По-моему, я совершил ошибку и перезагрузку методов класса отнёс к динамическому полиморфизму. Так как в википедии написано:

Цитата:
Перегрузка функций, шаблоны в Си++ реализуют именно статический полиморфизм
Так как какая из функций с одинаковыми именами будет вызвана решится на этапе компиляции (на этапе линковки у функций имена будут уже разные).

Последний раз редактировалось 8Observer8; 07.02.2013 в 10:30.
8Observer8 вне форума Ответить с цитированием
Старый 07.02.2013, 13:04   #38
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
С точностью до так оно и есть - полифоморфизм позволяет из старого кода вызывать новый.
Эм... можно пример?
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс
ROD вне форума Ответить с цитированием
Старый 07.02.2013, 13:54   #39
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от ROD Посмотреть сообщение
Эм... можно пример?
Код:
class CParent
{
    void Print() { PutChar('a'); }
    virtual void PutChar(char ch)   { /* Pechataem na ekran*/ } 
};
class CChild : public CParent
{
    virtual void PutChar(char ch)   { /* Pechataem v fajl*/ } 
};

CParent* ptr = new CChild;
ptr->Print();
waleri вне форума Ответить с цитированием
Старый 07.02.2013, 20:59   #40
ROD
Linux C++ Qt ARM
Старожил
 
Аватар для ROD
 
Регистрация: 30.11.2008
Сообщений: 3,030
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Код:
class CParent
{
    void Print() { PutChar('a'); }
    virtual void PutChar(char ch)   { /* Pechataem na ekran*/ } 
};
class CChild : public CParent
{
    virtual void PutChar(char ch)   { /* Pechataem v fajl*/ } 
};

CParent* ptr = new CChild;
ptr->Print();
Окей... никогда не воспринимал переопределение функций как "вызов нового кода из старого", (я почему-то подумал о вызове новых функций, совсем не вспомнил о переопределении).

Вот мы плавно подошли к тому, что терминология - очень тонкий вопрос.
Дилетант широкого профиля.

"Слова ничего не стоят - покажите мне код!" © Линус Торвальдс

Последний раз редактировалось ROD; 07.02.2013 в 21:01.
ROD вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Инструкция по созданию заготовки для 2D игр (для начинающих) 8Observer8 Gamedev - cоздание игр: Unity, OpenGL, DirectX 31 20.03.2023 02:01
C++ для начинающих a_Alise Помощь студентам 2 27.03.2016 10:00
C++ для начинающих Haruko_ Помощь студентам 0 23.10.2012 21:41
С++ для начинающих Maxim1 Общие вопросы C/C++ 10 31.05.2010 00:22