![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 24.02.2013
Сообщений: 2
|
![]()
При изучении ООП столкнулся с вопросом, который в учебниках толком не освещен : когда стоит создавать класс, а в каких случаях лучше обойтись структурой. Пример на Си :
Код:
Последний раз редактировалось Stilet; 24.02.2013 в 21:29. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
в С++ они имеют лишь одно отличие, а именно уровень доступа по умолчанию.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]()
Структуры рекомендуют использовать для данных с тривиальной семантикой (так называемые POD, от Plain Old Data). То есть такие, какие не требуют конструкции/деструкции и сокрытия реализации. Классы же, для всего остального. Но, как сказали выше, на уровне языка между ними различий практически нет, они могут быть только с точки зрения программиста.
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
![]()
Если у вас много функций, у которых (первый) аргумент - указатель на структуру, значит стоит задуматься о классах. Гораздо более сложный вопрос - когда использовать виртуальный методы.
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 24.02.2013
Сообщений: 2
|
![]()
если структура используется стеком, имеет ли смысл описывать класс для работы с этим стеком ?
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 15.07.2008
Сообщений: 1,933
|
![]() |
![]() |
![]() |
![]() |
#7 |
В прострации
Форумчанин
Регистрация: 13.01.2009
Сообщений: 239
|
![]()
Почему-то остался незамеченным комментарий господина Пепла:
Класс - это и есть структура, только по умолчанию для всех членов класса установлен модификатор доступа private, а для структуры - public. И особой разницы между Код:
Пол-жизни сидючи, в монитор глядючи...
![]() |
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
![]() Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 31.05.2010
Сообщений: 13,543
|
![]()
Классам лучше пользоваться, когда Вы хотите "скрыть" от пользователя метод реализации.
Современные структуры, подобны классам. В принципе, отличаются очень незначительно. Но, если хотите добиться кроссплатформенности, лучше ипользовать классы. А ешё лучше DLL-ки.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder |
![]() |
![]() |
![]() |
#10 | |||
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Цитата:
![]() и классы к кроссплатформенности не имею отношения вообще. Цитата:
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Когда нужно использовать ООП? | leklerk | Общие вопросы по программированию, компьютерный форум | 49 | 01.06.2012 09:09 |
Стоит ли использовать XPath | NieL | Общие вопросы Delphi | 1 | 05.04.2011 13:59 |
Стоит ли использовать inline для оптимизации в MSVC? | Kn793 | Общие вопросы C/C++ | 2 | 10.12.2010 16:07 |
Какой скрипт стоит использовать/искать? | qdf1 | PHP | 3 | 28.06.2010 03:48 |
сортировка, когда невозможно использовать свойства таблицы IndexFieldName | Римма | БД в Delphi | 5 | 07.09.2007 10:56 |