![]() |
|
Модераторы: bsa |
![]()
|
|
| mes |
|
||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
yngwie19, есть два понятия в ООП объект и класс (тип)
Объект - некоторая абстрактная сущность, которая может иметь внутреннее состояние, и к которой можно применить некоторые действия. Класс - это описание данных, которые хранит объект, и действий, применимых к нему. Механизм расширения описания_объекта (класса) называется наследованием. В Cpp: 1. Наследование реализовано посредством включения объекта базового класса в состав наследника и делегации ему действий (методов). Т.е любой объект-наследник получается собранный из "слоев" описанные чередой классов (предков и наследника). 2. Каждый объект хранит только данные описанные в его классе, например
3. Методы описанные в классе не хранятся в объекте и лишь описывают действия какие применемы к объекту:
A::f() и f() на техническом уровне одно и то же, однако первая запись имеет ряд удобств (скрытый параметр this, описание в одном месте (теле класса), очевидность прав доступа и т.д) Это сообщение отредактировал(а) mes - 4.11.2008, 17:46 |
||||
|
|||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Что-то пока не очень ясно. Ладно всем спасибо пойду читать литературу.
|
|||
|
||||
| Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
А что не ясно. Говори точнее. "Вот это" не ясно
-------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
| yngwie19 |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Annihilator, Мне не очень понятен механизм наследования. Например что происходит когда Я делаю такой вот код:
1) Конкретно непонятно, когда происходит наследование, то объект two хранит в себе функцию Print(), как он о ней знает? Она копируется в произвдный класс или как-то обращается к базовому классу, чтобы ее использовать ? 2) Что значит при создании объекта производного класса, сначала вызывается конструктор базового класса. Ведь при создании объекта сначала вызывается сначала его конструктор. Вообщем главный вопрос о том как происходит механизм наследования произвожного класса базовым. Добавлено через 3 минуты и 13 секунд да еще не понятно это высказывание
Это сообщение отредактировал(а) yngwie19 - 4.11.2008, 23:47 |
||||
|
|||||
| Annihilator |
|
||||||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
В твоем примере наследования нет. Возможно ты это хотел написать
Глянь. Значение указателей одно и тоже. А вот если уберешь комменты, тем самым переопределив Print() в проиводном классе, то это уже будут разные функции - Basic::Print() и PredClass::Print()
Для того чтобы ты родился, надо ведь чтобы твои родители родились, а для этого в свою очередь нужно родиться бабушкам и дедушкам. Здесь принцип тот же. Тут скорее идет речь о механизме включения/делегирования, чем о классическом наследовании -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
||||||
|
|||||||
| Fazil6 |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1653 Регистрация: 3.5.2006 Где: Минск Репутация: 7 Всего: 60 |
||||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
Что-то вы меня запутали
|
|||
|
||||
| J0ker |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 986 Регистрация: 17.9.2008 Репутация: 9 Всего: 14 |
...а вот если-бы начинали учить с ассемблера хотя-бы на самом примитивном уровне, то таких проблем с пониманием бы не было...
|
|||
|
||||
| Annihilator |
|
|||
![]() bytegrinder ![]() ![]() Профиль Группа: Участник Сообщений: 493 Регистрация: 21.11.2006 Где: Омск Репутация: 1 Всего: 3 |
Да я читал. Sorry, просто глюканул че-то yngwie19, забудь о механизме включения/делегирования -------------------- Если вы не можете сделать хоpошyю пpогpаммy, сделайте, чтобы она по кpайней меpе выглядела хоpошо |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
J0ker, Я давно хотел начать изучать ассемблер, можете мне посоветовать что-нибудь типа "Ассемблер для чайников" ну чтобы все разжевывали.
|
|||
|
||||
| IKM2007 |
|
|||
![]() Зима близко ![]() ![]() Профиль Группа: Участник Сообщений: 702 Регистрация: 26.4.2008 Где: olmedreca Репутация: 3 Всего: 40 |
Посоветую "Assembler: Учебник для вузов" Юров или "Assembler для Dos, Windows и Unix" Зубков. -------------------- "К чёрту обстоятельства, я создаю возможности." Брюс Ли |
|||
|
||||
| mes |
|
||||||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
Добавлено через 14 минут и 1 секунду допустим имеем
тогда в бесклассовом представлении мы имеем следующее :
Это сообщение отредактировал(а) mes - 5.11.2008, 23:13 |
||||||
|
|||||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
в троке 12 - A a, это зачем? можно без этого Это сообщение отредактировал(а) yngwie19 - 5.11.2008, 23:33 |
|||
|
||||
| mes |
|
|||
|
любитель ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7954 Регистрация: 14.1.2006 Репутация: 79 Всего: 250 |
затем что наследование (:public A) заменено включением(А а)+делегацией( void f() { a.f(); } ) Это сообщение отредактировал(а) mes - 5.11.2008, 23:35 |
|||
|
||||
| yngwie19 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 829 Регистрация: 15.6.2008 Где: Новгород Репутация: нет Всего: нет |
что такое делегация
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Для новичков" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |