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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
#1

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

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

Можете, пожалуйста, перечислить все отличия?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2012, 17:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Отличаи класса С++ от структуры на С и структуры на С++ (C++):

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

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

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

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

Вывод структуры, строка как элемент структуры - C++
Описать структуру с именем TRAIN, содержащую следующие поля: □ название пункта назначения; □ номер поезда; □ время отправления. ...

Объявление структуры и класса - C++
Ругается на строку obj_cls.prv=3; и на объявление класса. Что у меня не правильно? #include <iostream> using namespace std; ...

23
BumerangSP
4286 / 1408 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
28.12.2012, 17:37 #2
Между структурой и классом их всего 2, по-моему: члены структуры по умолчанию public, у класса private. Также при наследовании аналогично.
1
soon
2541 / 1306 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.12.2012, 17:38 #3
http://stackoverflow.com/questions/2...truct-vs-class
Пользоваться поиском не умеем?
0
Avazart
Эксперт С++
7214 / 5386 / 286
Регистрация: 10.12.2010
Сообщений: 23,808
Записей в блоге: 17
28.12.2012, 17:58 #4
Цитата Сообщение от xtorne21st Посмотреть сообщение
Можете, пожалуйста, перечислить все отличия?
Цитата Сообщение от soon Посмотреть сообщение
Пользоваться поиском не умеем?
Не просто в школу еще не пошли и книжки читать не умеем ...
0
xtorne21st
интересующийся
304 / 275 / 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 Посмотреть сообщение
Не просто в школу еще не пошли и книжки читать не умеем ...
Один умней другого. И это хорошо что на форуме относительно мало дураков))
0
0x10
2465 / 1637 / 241
Регистрация: 24.11.2012
Сообщений: 4,041
28.12.2012, 18:27 #6
xtorne21st, пункты 2-5 к структурам С++ отношения не имеют.
1
Kastaneda
Форумчанин
Эксперт С++
4656 / 2864 / 228
Регистрация: 12.12.2009
Сообщений: 7,276
Записей в блоге: 2
Завершенные тесты: 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, но это можно изменить руками. В Си этого сделать нельзя.
1
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.12.2012, 18:30 #8
Цитата Сообщение от Kastaneda Посмотреть сообщение
в С++ структуре спецификатор доступа по дефолту private,
Поясните.
1
xtorne21st
интересующийся
304 / 275 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
28.12.2012, 18:31  [ТС] #9
Цитата Сообщение от 0x10 Посмотреть сообщение
xtorne21st, пункты 2-5 к структурам С++ отношения не имеют.
Жду подтверждения сказанного).
0
Kastaneda
Форумчанин
Эксперт С++
4656 / 2864 / 228
Регистрация: 12.12.2009
Сообщений: 7,276
Записей в блоге: 2
Завершенные тесты: 1
28.12.2012, 18:36 #10
Цитата Сообщение от go Посмотреть сообщение
Поясните.
Ну да, гоню, конечно же public.

Не по теме:

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

0
soon
2541 / 1306 / 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.
А теперь скажите мне, что в этих двух строках может быть непонятного?
1
0x10
2465 / 1637 / 241
Регистрация: 24.11.2012
Сообщений: 4,041
28.12.2012, 18:39 #12
Цитата Сообщение от xtorne21st Посмотреть сообщение
Жду подтверждения сказанного).
А можно не ждать, а взять компилятор, да набросать иерархию из структур, с вирутальными методами, конструкторами по-умолчанию, конструкторами копирования... Что там еще нужно?
0
xtorne21st
интересующийся
304 / 275 / 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) Нет наследования.

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

Добавлено через 36 секунд
Цитата Сообщение от xtorne21st Посмотреть сообщение
struct C vs struct С++:
1) Нет методов.
2) Нет конструктора.
В Си нет ООП. Там не могут быть объекты.
0
diagon
Higher
1929 / 1195 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.12.2012, 18:46 #15
Цитата Сообщение от xtorne21st Посмотреть сообщение
class vs struct С++:
1) По умолчанию объекты класс закрыты, а у структуры открыты.
2) по умолчанию наследование от структуры публичное, а от класса - приватное. Больше нет различий.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2012, 18:46
Привет! Вот еще темы с ответами:

Указатель на член структуры/класса - C++
Всем привет! Помогите разобраться. Пусть есть такой код: template <typename Type> class DynamicQueue { private: class Node { ...

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

Функция класса заполнения структуры - C++
Помогите пожалуйста, начал учиться С++, есть задание создать в функцию класса для заполнения структы различными данными. числа вводятся, а...

Поля структуры внутри класса - C++
Здравствуйте, почему при выполнении метода movingNode поля элемента структуры node (координаты x и y) не меняются? Метод: void...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
28.12.2012, 18:46
Ответ Создать тему
Опции темы

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