Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/267: Рейтинг темы: голосов - 267, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 20.12.2011
Сообщений: 24

Отличие структуры от класса (преимущества, недостатки) где использование структур оправдано

08.02.2012, 00:16. Показов 51619. Ответов 5

Студворк — интернет-сервис помощи студентам
Кто что может сказать по теме - выскажитесь, а то никак не могу понять разницу, читал что можно вообще не заморачиваться и пропустить структуры, но мне всё же интересно почувствовать разницу. Заранее благодарен.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.02.2012, 00:16
Ответы с готовыми решениями:

Отличие структуры и класса от контейнера
Добрый день! Подскажите пожалуйста, чем отличается контейнер от структуры и класса?

Cat, more, less: какие преимущества/недостатки?
здравствуйте просмотреть файла с команд cat ,more ,less. Какая из них будет более удобна?? и Почему вы так считаете?)) Мне очень...

QuickSort и MergeSort: недостатки и преимущества
Добрый вечер! Qsort плоха тем, что в худшем случае работает за О(n^2). Mergesort стабильна и работает ВСЕГДА за n*log(n). Расскажите,...

5
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
08.02.2012, 00:35
На msdn здесь написаны различия.
Лично я пользуюсь тем, что структура легче класса - для хранения большого объема данных в оперативной памяти решает, только задача была нетривиальная.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
08.02.2012, 00:42
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от silent_ Посмотреть сообщение
читал что можно вообще не заморачиваться и пропустить структуры
Это какой же дятел такое написал?

Основные отличия структуры от класса:
1. Это value type. То есть при передачи оной в метод и получении оной из метода, всегда передается/возвращается копия, а не ссылка на оригинал.
2. Не поддерживает наследования.
3. В следствие пункта номер два в структурах нельзя определить виртуальные члены.
4. Нельзя определить дефолтный конструктор.
5. По причине п. 4 отсутствуют инициализаторы полей.
6. Память для структуры выделяется в стеке (за некоторыми исключениями), а не на куче. Но это - деталь реализации, а не контракт.
7. Нельзя определить т.н. деструктор. По причине п. 6.
18
0 / 0 / 0
Регистрация: 20.12.2011
Сообщений: 24
08.02.2012, 01:11  [ТС]
Спасибо за информацию. Т.е, как я понял, структура используется как "блок", содержащий методы. Ещё возник вопрос: в каких ситуациях нужно создавать несколько экземпляров структуры?
Если можете подскажите в каких случаях можно применять структуру и она будет полезней класса? Можно без кода, на словах
0
 Аватар для Sp1tfire
76 / 66 / 1
Регистрация: 10.12.2011
Сообщений: 175
08.02.2012, 01:28
Чем больше Вы будете использовать структуры вместо небольших (наверное, правильнее будет сказать – маленьких) классов, тем менее затратным по ресурсам будет использование памяти. Смею предположить, что не требуется объяснения почему… “куча”, “сборщик мусора”, “неопределенные временные интервалы прохода”, сложность “ручного” управления кучей и сборщиком мусора. Все ключевые моменты уже перечислены.
пример, когда нужно использовать структуру: координаты в играх.
2
Злой няш
 Аватар для I2um1
2136 / 1505 / 565
Регистрация: 05.04.2010
Сообщений: 2,881
08.02.2012, 01:34
Основное применение структур в том, чтобы код сделать более понятным, наглядным, эффективным и производительным. В общем случае, если вам нужно хранить небольшую группу связанных данных, но не нужно обеспечивать наследование и использовать другие достоинства ссылочных типов, тип struct может оказаться более предпочтительным вариантом. К примеру та же точка описывается координатами X и Y, сюда же можно еще и разместить такие методы как нахождение расстояния между точками или перемещение точки. А не засорять код этими методами где-нибудь в других местах.
4
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.02.2012, 01:34
Помогаю со студенческими работами здесь

Преимущества и недостатки Reg Organizer
установил RegOrganizer, слышал про неё много расхожих мнений, кто - то считает её полнейшей бутафорией, с красивым интерфейсем, кто - то...

Преимущества и недостатки Windows Forms
Какие плюсы и минусы у Windows Forms? Чем удобна? Добавлено через 6 часов 32 минуты поднимаю

Работа за рубежом. Преимущества и недостатки.
Что вы можете сказать про работу зарубежом? Какие она имеет преимущества и недостатки перед работой в России? Допустим, речь идет о...

В чем преимущества и недостатки программы CorelDraw
добрый день, форумчане. Подскажите - в чем преимущества и недостатки (по вашему мнению) программы CorelDraw - по сравнению с Компасом,...

Преимущества и недостатки MASM32 по сравнению с TASM.
Каковы преимущества и недостатки MASM32 по сравнению с TASM?


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru