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

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

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

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

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

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

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

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

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

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

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

Возврат копии структуры из другого класса - C++
Как можно копию структуры из одного класса передать в другой? (именно чтоб она изначально в private была) Сам только до такой вариант...

Создание сложной структуры или класса - C++
Народ я не специалист - поэтому писать желательно с коментарием Необходимо открыть файл и прочитать в некую структуру сам файл...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
28.12.2012, 17:37     Отличаи класса С++ от структуры на С и структуры на С++ #2
Между структурой и классом их всего 2, по-моему: члены структуры по умолчанию public, у класса private. Также при наследовании аналогично.
soon
2538 / 1303 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
28.12.2012, 17:38     Отличаи класса С++ от структуры на С и структуры на С++ #3
http://stackoverflow.com/questions/2...truct-vs-class
Пользоваться поиском не умеем?
Avazart
7101 / 5278 / 267
Регистрация: 10.12.2010
Сообщений: 23,283
Записей в блоге: 17
28.12.2012, 17:58     Отличаи класса С++ от структуры на С и структуры на С++ #4
Цитата Сообщение от xtorne21st Посмотреть сообщение
Можете, пожалуйста, перечислить все отличия?
Цитата Сообщение от soon Посмотреть сообщение
Пользоваться поиском не умеем?
Не просто в школу еще не пошли и книжки читать не умеем ...
xtorne21st
интересующийся
303 / 274 / 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
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,009
28.12.2012, 18:27     Отличаи класса С++ от структуры на С и структуры на С++ #6
xtorne21st, пункты 2-5 к структурам С++ отношения не имеют.
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 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++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.12.2012, 18:30     Отличаи класса С++ от структуры на С и структуры на С++ #8
Цитата Сообщение от Kastaneda Посмотреть сообщение
в С++ структуре спецификатор доступа по дефолту private,
Поясните.
xtorne21st
интересующийся
303 / 274 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
28.12.2012, 18:31  [ТС]     Отличаи класса С++ от структуры на С и структуры на С++ #9
Цитата Сообщение от 0x10 Посмотреть сообщение
xtorne21st, пункты 2-5 к структурам С++ отношения не имеют.
Жду подтверждения сказанного).
Kastaneda
Форумчанин
Эксперт С++
4479 / 2841 / 227
Регистрация: 12.12.2009
Сообщений: 7,224
Записей в блоге: 1
Завершенные тесты: 1
28.12.2012, 18:36     Отличаи класса С++ от структуры на С и структуры на С++ #10
Цитата Сообщение от go Посмотреть сообщение
Поясните.
Ну да, гоню, конечно же public.

Не по теме:

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

soon
2538 / 1303 / 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
2459 / 1631 / 238
Регистрация: 24.11.2012
Сообщений: 4,009
28.12.2012, 18:39     Отличаи класса С++ от структуры на С и структуры на С++ #12
Цитата Сообщение от xtorne21st Посмотреть сообщение
Жду подтверждения сказанного).
А можно не ждать, а взять компилятор, да набросать иерархию из структур, с вирутальными методами, конструкторами по-умолчанию, конструкторами копирования... Что там еще нужно?
xtorne21st
интересующийся
303 / 274 / 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++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
28.12.2012, 18:44     Отличаи класса С++ от структуры на С и структуры на С++ #14
Цитата Сообщение от xtorne21st Посмотреть сообщение
1) По умолчанию объекты класс закрыты, а у структуры открыты.
только это верно. Остальное вздор.

Добавлено через 36 секунд
Цитата Сообщение от xtorne21st Посмотреть сообщение
struct C vs struct С++:
1) Нет методов.
2) Нет конструктора.
В Си нет ООП. Там не могут быть объекты.
diagon
Higher
1927 / 1193 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.12.2012, 18:46     Отличаи класса С++ от структуры на С и структуры на С++ #15
Цитата Сообщение от xtorne21st Посмотреть сообщение
class vs struct С++:
1) По умолчанию объекты класс закрыты, а у структуры открыты.
2) по умолчанию наследование от структуры публичное, а от класса - приватное. Больше нет различий.
xtorne21st
интересующийся
303 / 274 / 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
1927 / 1193 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
28.12.2012, 18:51     Отличаи класса С++ от структуры на С и структуры на С++ #17
Цитата Сообщение от xtorne21st Посмотреть сообщение
Я под объектом понимаю любой тип данных, поясните, пожалуйста.
Объект - экземпляр класса, а никак не тип данных. В С++, в отличие от C#, не все является объектом.
Кастрированность сишных структур, кстати, можно описать так - нету функциональных членов.
soon
2538 / 1303 / 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
интересующийся
303 / 274 / 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++
Пишу клас дробей вида (sqrt(f)+n)/d. Нужно проверять равна ли такая дробь нулю, тоесть (f==0&&n==0) но так писать каждый раз не удобно, и...

Использовать объект структуры внутри класса - C++
Здравствуйте! Необходимо сделать так, чтобы была возможность использовать данные из структуры внутри класса. Конкретно в этом примере -...

Организация настроек сложной структуры/класса - C++
Здравствуйте, форумчане!! Возник такой вопрос: что если класс, который я реализую имеет большое колличество вариантов настроек...

Как сделать локализацию внутри класса/структуры? - C++
Как сделать локализацию внутри класса/структуры?

Есть ли в C++ возможность работы с метаданными класса/структуры? - C++
Здравствуйте уважаемые форумчане. Есть ли в с++ возможность работы с метеоданными класса/структуры ?


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

Или воспользуйтесь поиском по форуму:
diagon
Higher
1927 / 1193 / 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     Отличаи класса С++ от структуры на С и структуры на С++
Ответ Создать тему
Опции темы

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