|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
08.05.2013, 17:16 | #1 |
Регистрация: 29.04.2013
Сообщений: 9
|
вопрос по классам и объектам
3дравствуйте! Только что начал изучение ООП, всвязи с чем возникли тупые вопросы новичка
итак, собственно сам вопрос: допустим, я создал класс с двумя полями и методом. затем, создаю два объекта этого класса. теперь в каждом созданном объекте память будет выделяться для полей? и каждый объект будет содержать копию метода?? Заранее спасибо за ответы! |
08.05.2013, 17:22 | #2 |
Форумчанин
Регистрация: 14.12.2012
Сообщений: 668
|
Нет, объекты занимают память только для своих данных и для указателя на таблицу виртуальных функций (если виртуальные функции есть).
|
09.05.2013, 11:07 | #3 |
Регистрация: 29.04.2013
Сообщений: 9
|
получается, метод уникален для каждого объекта своего класса? т.е. любой объект класса использует метод как свой?
|
09.05.2013, 11:21 | #4 |
Форумчанин
Регистрация: 03.01.2013
Сообщений: 388
|
Видимо да, если каждому объекту соответсвует уникальное значение свойства, а метод как раз и оперирует со свойствами...
Ведь для каждого обеъкта автоматически вызывается свой деструктор и конструктор... А ведь они специальные методы Последний раз редактировалось Igor95; 09.05.2013 в 11:23. |
09.05.2013, 11:27 | #5 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
на практике внутри компилятора разницы между:
Код:
Код:
метод принимает указатель на объект, как неявный параметр(доступен через this) Цитата:
деструктор так же(у виртуального просто адрес для вызова берем из VMT, тк он не известен сразу) Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 09.05.2013 в 11:29. |
|
09.05.2013, 11:56 | #6 |
Регистрация: 29.04.2013
Сообщений: 9
|
наверное я понял... при создании объекта выделяется память только для его полей, а методы помещаются, как и любые функции, в область кода и умеет работать с любым объектом своего класса, имея неявную ссылку на тот объект, для которого он был вызван?
|
09.05.2013, 12:19 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
почти, методы смогут принять любой совместимый с указанным классом объект(указатель на него) как параметр.
то есть для потомков повторный код не генерируется. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос по "классам" С++! | Eniwent | Помощь студентам | 5 | 11.11.2011 20:43 |
Вопрос по классам, обработчикам событий... | Vadik(R) | Помощь студентам | 4 | 01.11.2010 11:10 |
Вопрос по классам делфи и их использованию. | Solrainer7 | Общие вопросы Delphi | 6 | 12.07.2010 19:16 |
вопрос по объектам на паскале | demonara | Помощь студентам | 7 | 09.09.2009 20:52 |
С++ Интересный вопрос по объектам: | Познающий | Помощь студентам | 12 | 11.05.2009 19:26 |