интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056

Отличаи класса С++ от структуры на С и структуры на С++

28.12.2012, 17:35. Показов 2129. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можете, пожалуйста, перечислить все отличия?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.12.2012, 17:35
Ответы с готовыми решениями:

Помещение структуры в вектор, удаление структуры, изменение элементов структуры
Здравствуйте. Помогите разобраться с тем, как: 1 - находить элементы в векторе зная уникальный элемент структуры. 2 - удалять...

Написать шаблон класса на основе класса vector для реализации стековой структуры данных
Пыталась написать код, но не уверена будет ли такая реализация корректной, можно ли это сделать как-то по - другому? И как надо...

Динамические структуры данных. Программа ввода в структуры и вывода информации из неё.
Автоматизированная информационная система на железнодорожном вокзале содержит сведения об отправлении поездов дальнего следования. Для...

23
 Аватар для BumerangSP
4311 / 1423 / 463
Регистрация: 16.12.2010
Сообщений: 2,939
Записей в блоге: 3
28.12.2012, 17:37
Между структурой и классом их всего 2, по-моему: члены структуры по умолчанию public, у класса private. Также при наследовании аналогично.
1
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.12.2012, 17:38
http://stackoverflow.com/quest... t-vs-class
Пользоваться поиском не умеем?
0
Эксперт С++
 Аватар для Avazart
8484 / 6151 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
28.12.2012, 17:58
Цитата Сообщение от xtorne21st Посмотреть сообщение
Можете, пожалуйста, перечислить все отличия?
Цитата Сообщение от soon Посмотреть сообщение
Пользоваться поиском не умеем?
Не просто в школу еще не пошли и книжки читать не умеем ...
0
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
28.12.2012, 18:27  [ТС]
Цитата Сообщение от soon Посмотреть сообщение
http://stackoverflow.com/questions/2...truct-vs-class
Пользоваться поиском не умеем?
Отвечайте, пожалуйста, по существу. По вашей ссылке фраза "no methods, no constructor, no base classes, etc." не выглядит полностью информативной. Меня интересуют все отличия.
Пока-что нашёл слудующие:
class vs struct С++:
1) По умолчанию объекты класс закрыты, а у структуры открыты.
2) Память для структуры выделяется в стеке, а не на куче. По этой причине нельзя определить для структуры деструктор.
3) Нельзя для структуры определить, конструктор по умолчанию, вследствие этого в структуре отсутствуют инициализаторы полей.
4) Структура не поддерживает наследование, поэтому нельзя объявить в ней виртуальные члены.
5) При передаче одного метода в другой, в структуре всегда передается/возвращается копия значения, а не ссылка, как в классе.
struct C vs struct С++:
1) Нет методов.
2) Нет конструктора.

Прошу поправить и дополнить (если есть чем).

Добавлено через 2 минуты
Цитата Сообщение от Avazart Посмотреть сообщение
Не просто в школу еще не пошли и книжки читать не умеем ...
Один умней другого. И это хорошо что на форуме относительно мало дураков))
0
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
28.12.2012, 18:27
xtorne21st, пункты 2-5 к структурам С++ отношения не имеют.
1
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
28.12.2012, 18:28
Цитата Сообщение от xtorne21st Посмотреть сообщение
class vs struct С++:
1) По умолчанию объекты класс закрыты, а у структуры открыты.
2) Память для структуры выделяется в стеке, а не на куче. По этой причине нельзя определить для структуры деструктор.
3) Нельзя для структуры определить, конструктор по умолчанию, вследствие этого в структуре отсутствуют инициализаторы полей.
4) Структура не поддерживает наследование, поэтому нельзя объявить в ней виртуальные члены.
5) При передаче одного метода в другой, в структуре всегда передается/возвращается копия значения, а не ссылка, как в классе.
Только первое правильно, остальное полный бред. Полный ответ дан во втором посте.
Цитата Сообщение от xtorne21st Посмотреть сообщение
struct C vs struct С++:
1) Открытый тип данных.
2) Нет методов.
3) Нет конструктора.
Да, с дополнением - в С++ структуре спецификатор доступа по дефолту private, но это можно изменить руками. В Си этого сделать нельзя.
1
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
28.12.2012, 18:30
Цитата Сообщение от Kastaneda Посмотреть сообщение
в С++ структуре спецификатор доступа по дефолту private,
Поясните.
1
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
28.12.2012, 18:31  [ТС]
Цитата Сообщение от 0x10 Посмотреть сообщение
xtorne21st, пункты 2-5 к структурам С++ отношения не имеют.
Жду подтверждения сказанного).
0
 Аватар для Kastaneda
5232 / 3205 / 362
Регистрация: 12.12.2009
Сообщений: 8,143
Записей в блоге: 2
28.12.2012, 18:36
Цитата Сообщение от go Посмотреть сообщение
Поясните.
Ну да, гоню, конечно же public.

Не по теме:

P.S. рука дрогнула :)

0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.12.2012, 18:36
Цитата Сообщение от xtorne21st Посмотреть сообщение
Отвечайте, пожалуйста, по существу.
In C++, structs and classes are pretty much the same; the only difference is that where access modifiers (edit: for member variables, methods, and for base classes) in classes default to private, access modifiers in structs default to public.
However, in C, a struct is just an aggregate collection of (public) data, and has no other class-like features: no methods, no constructor, no base classes, etc.
А теперь скажите мне, что в этих двух строках может быть непонятного?
1
3258 / 2060 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
28.12.2012, 18:39
Цитата Сообщение от xtorne21st Посмотреть сообщение
Жду подтверждения сказанного).
А можно не ждать, а взять компилятор, да набросать иерархию из структур, с вирутальными методами, конструкторами по-умолчанию, конструкторами копирования... Что там еще нужно?
0
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
28.12.2012, 18:44  [ТС]
Как оказалось по большей части с пункта 2-5 имеет отношение к с-sharp в итоге мы получаем:
class vs struct С++:
1) По умолчанию объекты класс закрыты, а у структуры открыты.
struct C vs struct С++:
1) Нет методов.
2) Нет конструктора.
3) Нет наследования.

Если может кто-то дополнить - дополните.
0
go
Эксперт С++
3646 / 1378 / 243
Регистрация: 16.04.2009
Сообщений: 4,526
28.12.2012, 18:44
Цитата Сообщение от xtorne21st Посмотреть сообщение
1) По умолчанию объекты класс закрыты, а у структуры открыты.
только это верно. Остальное вздор.

Добавлено через 36 секунд
Цитата Сообщение от xtorne21st Посмотреть сообщение
struct C vs struct С++:
1) Нет методов.
2) Нет конструктора.
В Си нет ООП. Там не могут быть объекты.
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.12.2012, 18:46
Цитата Сообщение от xtorne21st Посмотреть сообщение
class vs struct С++:
1) По умолчанию объекты класс закрыты, а у структуры открыты.
2) по умолчанию наследование от структуры публичное, а от класса - приватное. Больше нет различий.
0
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
28.12.2012, 18:49  [ТС]
Цитата Сообщение от soon Посмотреть сообщение
no methods, no constructor, no base classes, etc.
Да всё здесь более-мение понятно, вот только слово etc. заставляет задуматься о не полной информации.

Добавлено через 1 минуту
Цитата Сообщение от go Посмотреть сообщение
В Си нет ООП. Там не могут быть объекты.
Я под объектом понимаю любой тип данных, поясните, пожалуйста.
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.12.2012, 18:51
Цитата Сообщение от xtorne21st Посмотреть сообщение
Я под объектом понимаю любой тип данных, поясните, пожалуйста.
Объект - экземпляр класса, а никак не тип данных. В С++, в отличие от C#, не все является объектом.
Кастрированность сишных структур, кстати, можно описать так - нету функциональных членов.
0
 Аватар для soon
2554 / 1319 / 178
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.12.2012, 18:54
Цитата Сообщение от xtorne21st Посмотреть сообщение
Да всё здесь более-мение понятно, вот только слово etc. заставляет задуматься о не полной информации.
Главный кусок там
struct is just an aggregate collection of (public) data
1
интересующийся
311 / 282 / 93
Регистрация: 25.09.2010
Сообщений: 1,056
28.12.2012, 18:56  [ТС]
Цитата Сообщение от diagon Посмотреть сообщение
Объект - экземпляр класса, а никак не тип данных. В С++, в отличие от C#, не все является объектом.
Кастрированность сишных структур, кстати, можно описать так - нету функциональных членов.
Т.е. если мы имеем:
C++
1
2
3
4
5
6
class Newclass {                                                                                                
    int i;                                                                                                      
    int j;                                                                                                      
};                                                                                                               
                                                                                                                
int c;
i, j - объекты получается, то что же тогда с?
0
Higher
 Аватар для diagon
1953 / 1219 / 120
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.12.2012, 19:01
Цитата Сообщение от xtorne21st Посмотреть сообщение
i, j - объекты получается
Да нет, это поля. Объектом был бы экземпляр вашего класса.
i, j, c имеют тип int. int - фундаментальный тип, который не является классом, следовательно, i, j, c не могут считаться объектами.
Что они в таком случае - точной терминологии не знаю, но обычно их называют просто переменными.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.12.2012, 19:01
Помогаю со студенческими работами здесь

Функция внутри структуры использует указатель, как поле этой структуры
Коротко, есть класс A, описан в файле A_class.h ну и реализованы функции в A_class.cpp, есть файл GlobalItems.h, где хранятся глобальные...

Динамическое изменение структуры таблицы для организации древовиднойой структуры
Доброго времени суток. У меня такой вот вопрос: Необходимо сделать возможность добавления записей в таблицу определнным образом (через...

Динамические структуры данных, списковые структуры (надо разобраться что делает программа)
дана программа, надо помочь выяснить что в ней делает каждая подпрограмма unit Unit6; interface uses Windows,...

Структуры, массивы структур (как можно присваивать(инициализировать) значения полям структуры)
Есть у меня вот такая структура, например struct Subject { int cost; int Volume; }; Потом создаю экземпляр, Subject G; ...

Совместите объявление и инициализацию структуры. После инициализации структуры выполните изменение ее полей с последующи
Написать программу структурного описания каталога одной книги. Программный код решения примера #include...


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

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

Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru