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

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

08.02.2012, 00:16. Просмотров 41406. Ответов 5

Кто что может сказать по теме - выскажитесь, а то никак не могу понять разницу, читал что можно вообще не заморачиваться и пропустить структуры, но мне всё же интересно почувствовать разницу. Заранее благодарен.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.02.2012, 00:16
Ответы с готовыми решениями:

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

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

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

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

5
Злой няш
1521 / 1185 / 407
Регистрация: 05.04.2010
Сообщений: 2,081
08.02.2012, 00:35 2
На msdn здесь написаны различия.
Лично я пользуюсь тем, что структура легче класса - для хранения большого объема данных в оперативной памяти решает, только задача была нетривиальная.
0
Эксперт .NET
13735 / 10619 / 2796
Регистрация: 17.09.2011
Сообщений: 18,018
08.02.2012, 00:42 3
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от 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  [ТС] 4
Спасибо за информацию. Т.е, как я понял, структура используется как "блок", содержащий методы. Ещё возник вопрос: в каких ситуациях нужно создавать несколько экземпляров структуры?
Если можете подскажите в каких случаях можно применять структуру и она будет полезней класса? Можно без кода, на словах
0
76 / 66 / 1
Регистрация: 10.12.2011
Сообщений: 175
08.02.2012, 01:28 5
Чем больше Вы будете использовать структуры вместо небольших (наверное, правильнее будет сказать – маленьких) классов, тем менее затратным по ресурсам будет использование памяти. Смею предположить, что не требуется объяснения почему… “куча”, “сборщик мусора”, “неопределенные временные интервалы прохода”, сложность “ручного” управления кучей и сборщиком мусора. Все ключевые моменты уже перечислены.
пример, когда нужно использовать структуру: координаты в играх.
2
Злой няш
1521 / 1185 / 407
Регистрация: 05.04.2010
Сообщений: 2,081
08.02.2012, 01:34 6
Основное применение структур в том, чтобы код сделать более понятным, наглядным, эффективным и производительным. В общем случае, если вам нужно хранить небольшую группу связанных данных, но не нужно обеспечивать наследование и использовать другие достоинства ссылочных типов, тип struct может оказаться более предпочтительным вариантом. К примеру та же точка описывается координатами X и Y, сюда же можно еще и разместить такие методы как нахождение расстояния между точками или перемещение точки. А не засорять код этими методами где-нибудь в других местах.
4
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.02.2012, 01:34

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.