23 / 20 / 3
Регистрация: 12.08.2010
Сообщений: 206
|
|
1 | |
Отличия между структурами и классами18.08.2010, 12:38. Показов 25716. Ответов 58
Метки нет (Все метки)
Объясните пожалуйста, в С++, получается, что структура отличается от класса только тем, что у нее по умолчанию все данные public?
Т.е. наследовать структуры я тоже могу. Тогда как-то непонятен смысл создания двух одинаковых типов объектов, только что с разными названиями.
2
|
18.08.2010, 12:38 | |
Ответы с готовыми решениями:
58
Отличия между классами и массивами Отличия между классами String и StringBuilder Отличия между классами для работы с интернетом Разница между классами и структурами и другие моменты |
55 / 44 / 5
Регистрация: 16.07.2011
Сообщений: 73
|
||||||
28.07.2011, 10:11 | 21 | |||||
half-node,
Структура - это набор переменных разного типа без каких либо функций класс- это набор разного типа переменных + функции обработки переменных этого класса Добавлено через 3 минуты half-node, Структура — это совокупность переменных, объединенных под одним именем. С помощью структур удобно размещать в смежных полях связанные между собой элементы информации. Объявление структуры создает шаблон, который можно использовать для создания ее объектов (то есть экземпляров этой структуры). Переменные, из которых состоит структура, называются членами. (Члены структуры еще называются элементами или полями.) Добавлено через 1 минуту half-node, выглядит структура примерно так
0
|
28.07.2011, 10:14 | 22 | |||||
ViNew, сказали же, что не т формальной разницы между структурой и классом в C++, кроме спецификатора доступа по-умолчанию. И сделано это ради совместимости с языком Си, то есть чтобы сишнйы код компилился компиляторами C++.
Разница исключительно идеалогическая. Кому-то не нравится выделять структуры как сущности с поведением, а только как некий набор данных. Кому-то на это наплевать. Разве в этом коде что-то неправильно?
0
|
55 / 44 / 5
Регистрация: 16.07.2011
Сообщений: 73
|
||||||
28.07.2011, 10:15 | 23 | |||||
half-node,
а вот так может выглядеть простой класс
0
|
Заблокирован
|
|
28.07.2011, 10:27 | 24 |
а сложный как выглядит? если ты имеешь ввиду что это POD, то спешу огорчить - это не так
0
|
55 / 44 / 5
Регистрация: 16.07.2011
Сообщений: 73
|
|
28.07.2011, 11:05 | 25 |
fasked, Код правильный я с тобой согласен, то что многим наплевать , тоже согласен но я думаю сознательные программисты разделяют этих два понятия даже если они имеют почти одинаковые возможности.
Добавлено через 6 минут LosAngeles, POD- называется структура которая не содержит функции - члены а только члены данные.
0
|
Заблокирован
|
|
28.07.2011, 11:17 | 26 |
нет...
Добавлено через 3 минуты хотя в любом случае непонятно почему class_name простой. Первый раз вижу такую классификацию классов на простые и сложные.
0
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
28.07.2011, 11:25 | 27 |
0
|
Заблокирован
|
||||||
28.07.2011, 11:27 | 28 | |||||
и ещё один
0
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
28.07.2011, 11:34 | 29 |
Это - POD. А вот ваше определение POD, которое я видел выше - неверно. Вот что такое POD:
2
|
Заблокирован
|
|
28.07.2011, 11:37 | 30 |
0
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
28.07.2011, 11:39 | 31 |
Пардон, это ViNew дал определение...
0
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
||||||
28.07.2011, 11:42 | 33 | |||||
А нетривиальный конструктор? Мы можем его написать.
Кроме того, надо смотреть стандарт, нет ли ограничений на мемберство в unione - я просто не помню. Дополнение. Студия 2010:
1
|
Freelance
2891 / 1826 / 356
Регистрация: 09.09.2010
Сообщений: 3,841
|
|
28.07.2011, 14:45 | 34 |
Кое-что есть:
C++0x, правда, добавляет таку возможность:
1
|
1069 / 848 / 60
Регистрация: 30.04.2011
Сообщений: 1,659
|
|
28.07.2011, 14:58 | 35 |
asics, ну вот.
Как раз на нетривиальный copy-constructor VC++ 2010 и жаловался. Все правильно!
1
|
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|||||||||||
28.07.2011, 20:19 | 36 | ||||||||||
Не по теме: Тему интересно почитать хотя бы из-за того ка "прошаренные" новички на форуме объясняют как истину последней инстанции что такое структура и что такое класс :D Спасибо им за поднятое настроение. Побуду кепом: автореферентные классы/структуры создаются несколько по другому: Так в классе один из объектов может быть этого же типа
0
|
Каратель
|
|
28.07.2011, 20:49 | 38 |
Сообщение было отмечено как решение
Решение
это что?
с какого перепугу? это даже не указатель на структуру, а черт знает что Добавлено через 1 минуту и не должен, потому что на момент компиляции размер класса Test неопределен Добавлено через 1 минуту с .NET-ом путаете товарищ!
4
|
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
||||||
28.07.2011, 20:50 | 39 | |||||
CAHTEXHUK, а вот так:
0
|
2381 / 1665 / 279
Регистрация: 29.05.2011
Сообщений: 3,399
|
|
28.07.2011, 20:52 | 40 |
Gepar, тогда в чём отличия?
0
|
28.07.2011, 20:52 | |
28.07.2011, 20:52 | |
Помогаю со студенческими работами здесь
40
Отличия между ++value и value++ Отличия между видеокартами Отличия между книгами Отличия между DVD Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |