Форум программистов, компьютерный форум CyberForum.ru

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

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
28.12.2012, 17:35     Отличаи класса С++ от структуры на С и структуры на С++ #1
Можете, пожалуйста, перечислить все отличия?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2012, 17:35     Отличаи класса С++ от структуры на С и структуры на С++
Посмотрите здесь:

C++ объявление структуры и класса
C++ Динамические структуры данных. Программа ввода в структуры и вывода информации из неё.
Структуры, массивы структур (как можно присваивать(инициализировать) значения полям структуры) C++
Функция внутри структуры использует указатель, как поле этой структуры C++
Вывод структуры, строка как элемент структуры C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
28.12.2012, 17:37     Отличаи класса С++ от структуры на С и структуры на С++ #2
Между структурой и классом их всего 2, по-моему: члены структуры по умолчанию public, у класса private. Также при наследовании аналогично.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.12.2012, 17:38     Отличаи класса С++ от структуры на С и структуры на С++ #3
http://stackoverflow.com/questions/2...truct-vs-class
Пользоваться поиском не умеем?
Avazart
 Аватар для Avazart
6893 / 5133 / 250
Регистрация: 10.12.2010
Сообщений: 22,561
Записей в блоге: 17
28.12.2012, 17:58     Отличаи класса С++ от структуры на С и структуры на С++ #4
Цитата Сообщение от xtorne21st Посмотреть сообщение
Можете, пожалуйста, перечислить все отличия?
Цитата Сообщение от soon Посмотреть сообщение
Пользоваться поиском не умеем?
Не просто в школу еще не пошли и книжки читать не умеем ...
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
28.12.2012, 18:27  [ТС]     Отличаи класса С++ от структуры на С и структуры на С++ #5
Цитата Сообщение от 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 Посмотреть сообщение
Не просто в школу еще не пошли и книжки читать не умеем ...
Один умней другого. И это хорошо что на форуме относительно мало дураков))
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
28.12.2012, 18:27     Отличаи класса С++ от структуры на С и структуры на С++ #6
xtorne21st, пункты 2-5 к структурам С++ отношения не имеют.
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
28.12.2012, 18:28     Отличаи класса С++ от структуры на С и структуры на С++ #7
Цитата Сообщение от xtorne21st Посмотреть сообщение
class vs struct С++:
1) По умолчанию объекты класс закрыты, а у структуры открыты.
2) Память для структуры выделяется в стеке, а не на куче. По этой причине нельзя определить для структуры деструктор.
3) Нельзя для структуры определить, конструктор по умолчанию, вследствие этого в структуре отсутствуют инициализаторы полей.
4) Структура не поддерживает наследование, поэтому нельзя объявить в ней виртуальные члены.
5) При передаче одного метода в другой, в структуре всегда передается/возвращается копия значения, а не ссылка, как в классе.
Только первое правильно, остальное полный бред. Полный ответ дан во втором посте.
Цитата Сообщение от xtorne21st Посмотреть сообщение
struct C vs struct С++:
1) Открытый тип данных.
2) Нет методов.
3) Нет конструктора.
Да, с дополнением - в С++ структуре спецификатор доступа по дефолту private, но это можно изменить руками. В Си этого сделать нельзя.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.12.2012, 18:30     Отличаи класса С++ от структуры на С и структуры на С++ #8
Цитата Сообщение от Kastaneda Посмотреть сообщение
в С++ структуре спецификатор доступа по дефолту private,
Поясните.
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
28.12.2012, 18:31  [ТС]     Отличаи класса С++ от структуры на С и структуры на С++ #9
Цитата Сообщение от 0x10 Посмотреть сообщение
xtorne21st, пункты 2-5 к структурам С++ отношения не имеют.
Жду подтверждения сказанного).
Kastaneda
Модератор
Эксперт С++
 Аватар для Kastaneda
4236 / 2769 / 218
Регистрация: 12.12.2009
Сообщений: 7,104
Записей в блоге: 1
Завершенные тесты: 1
28.12.2012, 18:36     Отличаи класса С++ от структуры на С и структуры на С++ #10
Цитата Сообщение от go Посмотреть сообщение
Поясните.
Ну да, гоню, конечно же public.

Не по теме:

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

soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.12.2012, 18:36     Отличаи класса С++ от структуры на С и структуры на С++ #11
Цитата Сообщение от 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.
А теперь скажите мне, что в этих двух строках может быть непонятного?
0x10
2425 / 1597 / 232
Регистрация: 24.11.2012
Сообщений: 3,919
28.12.2012, 18:39     Отличаи класса С++ от структуры на С и структуры на С++ #12
Цитата Сообщение от xtorne21st Посмотреть сообщение
Жду подтверждения сказанного).
А можно не ждать, а взять компилятор, да набросать иерархию из структур, с вирутальными методами, конструкторами по-умолчанию, конструкторами копирования... Что там еще нужно?
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
28.12.2012, 18:44  [ТС]     Отличаи класса С++ от структуры на С и структуры на С++ #13
Как оказалось по большей части с пункта 2-5 имеет отношение к с-sharp в итоге мы получаем:
class vs struct С++:
1) По умолчанию объекты класс закрыты, а у структуры открыты.
struct C vs struct С++:
1) Нет методов.
2) Нет конструктора.
3) Нет наследования.

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

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

Добавлено через 1 минуту
Цитата Сообщение от go Посмотреть сообщение
В Си нет ООП. Там не могут быть объекты.
Я под объектом понимаю любой тип данных, поясните, пожалуйста.
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.12.2012, 18:51     Отличаи класса С++ от структуры на С и структуры на С++ #17
Цитата Сообщение от xtorne21st Посмотреть сообщение
Я под объектом понимаю любой тип данных, поясните, пожалуйста.
Объект - экземпляр класса, а никак не тип данных. В С++, в отличие от C#, не все является объектом.
Кастрированность сишных структур, кстати, можно описать так - нету функциональных членов.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.12.2012, 18:54     Отличаи класса С++ от структуры на С и структуры на С++ #18
Цитата Сообщение от xtorne21st Посмотреть сообщение
Да всё здесь более-мение понятно, вот только слово etc. заставляет задуматься о не полной информации.
Главный кусок там
struct is just an aggregate collection of (public) data
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
28.12.2012, 18:56  [ТС]     Отличаи класса С++ от структуры на С и структуры на С++ #19
Цитата Сообщение от diagon Посмотреть сообщение
Объект - экземпляр класса, а никак не тип данных. В С++, в отличие от C#, не все является объектом.
Кастрированность сишных структур, кстати, можно описать так - нету функциональных членов.
Т.е. если мы имеем:
C++
1
2
3
4
5
6
class Newclass {                                                                                                
    int i;                                                                                                      
    int j;                                                                                                      
};                                                                                                               
                                                                                                                
int c;
i, j - объекты получается, то что же тогда с?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2012, 19:01     Отличаи класса С++ от структуры на С и структуры на С++
Еще ссылки по теме:

Поля структуры внутри класса C++
Функция класса заполнения структуры C++
C++ Указатель на член структуры/класса

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

Или воспользуйтесь поиском по форуму:
diagon
Higher
 Аватар для diagon
1920 / 1186 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.12.2012, 19:01     Отличаи класса С++ от структуры на С и структуры на С++ #20
Цитата Сообщение от xtorne21st Посмотреть сообщение
i, j - объекты получается
Да нет, это поля. Объектом был бы экземпляр вашего класса.
i, j, c имеют тип int. int - фундаментальный тип, который не является классом, следовательно, i, j, c не могут считаться объектами.
Что они в таком случае - точной терминологии не знаю, но обычно их называют просто переменными.
Yandex
Объявления
28.12.2012, 19:01     Отличаи класса С++ от структуры на С и структуры на С++
Ответ Создать тему
Опции темы

Текущее время: 11:11. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru