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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 59, средняя оценка - 4.63
cactus09
Чайник
69 / 69 / 4
Регистрация: 15.02.2012
Сообщений: 475
#1

В чем отличия классов и структур? - C++

17.03.2012, 16:27. Просмотров 9670. Ответов 21
Метки нет (Все метки)

Всем доброго времени суток.
Уважаемые программисты, обьясните мне в чем отличия классов и структур. Учусь сам по книжкам и прочей лабуде и так и не чего не понимаю. По мне так класс это типо усложненая версия структуры, но тогда зачем она нужна. Вообще зачем нужны классы и как ими пользоваться.

Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.03.2012, 16:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос В чем отличия классов и структур? (C++):

Подскажите начинающему программисту, в чем отличие структур от классов в C++ - C++
Расскажите пожалуйста начинающему программисту, в чем отличие структур от классов в C++

C++ Отличия структур от массивов - C++
Объясните, пожалуйста, в чем заключаются отличия массивов от структур?

Напишите отличия классов от объектов - C++
может кто простым языком рассказать про отличие между классами и объектами

В чем отличия cin.getline от gets? - C++
Напрмер, записи gets(str) от cin.getline(str, 1000) что лучше использовать?

Циклы while и for: в чем суть отличия? - C++
Пытаюсь понять в чем суть отличия между этими циклами. Пишутся по разному, а по сути тоже самое. Можно ли написать цикл while таким...

В чем отличия wchar_t от char16_t? - C++
Дарова, сабж ясен из заголовка

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
17.03.2012, 16:33 #2
по типу дефолтного доступа.
класс, объявленный как class, имеет по умолчанию доступ private.
класс, объявленный как struct, имеет по умолчанию доступ public.
как следствие, наследуя структуру от класса, не обязательно указывать слово public

Добавлено через 1 минуту
Нужно отталкиваться от инкапсуляции. Например, конструктор в структуре полезен довольно часто, хотя, быть может, поля открыты и методы-аксессоры отсутствуют. А если, например, нужно гарантировать, что переменная через интерфейс должна быть только для чтения, поле нужно закрыть и написать соответствующий get - это уже намекает на класс.
andry-raser
6 / 6 / 0
Регистрация: 04.12.2011
Сообщений: 35
17.03.2012, 16:34 #3
Ну в принципе различие в том , что классы могут использовать функции а структуры нет, кстати, сейчас сам ищу этот материал ,подскажите где можно почитать, о перегрузке функций в классе и т.д
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
17.03.2012, 16:35 #4
имхо это больше формальная сторона, те кодер сам решает, если ему мало структуры и нужно использовать тучу методов, тогда через классы
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
17.03.2012, 16:36 #5
Цитата Сообщение от cactus09 Посмотреть сообщение
В чем отличия классов и структур?
ни в чем, кроме
1) специфкатора доступа к полям и методам по умолчанию
2) спецификатора наследования по умолчанию

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
class myclass {
//private members
    int i;
    void f();
public:
//...
};
 
class myclass_2 : myclass /*private inheritance*/{
};
 
struct mystruct {
//public members
    int i;
    void f();
private:
//...
};
 
struct mystruct_2 : mystruct /*public inheritance*/{
};
Цитата Сообщение от andry-raser Посмотреть сообщение
у в принципе различие в том , что классы могут использовать функции а структуры нет
неправда

Цитата Сообщение от cactus09 Посмотреть сообщение
Вообще зачем нужны классы и как ими пользоваться.
в этом вопросе ваш лучший друг - литература
Hemull
47 / 47 / 1
Регистрация: 12.03.2012
Сообщений: 108
17.03.2012, 16:39 #6
andry-raser, попробуй тут http://valera.asf.ru/cpp/book/c09.html
andry-raser
6 / 6 / 0
Регистрация: 04.12.2011
Сообщений: 35
17.03.2012, 16:45 #7
Hemull , спасибо посмотрю , просто на лекциях никому не ясно ничего, препод немного не логично трактует
cactus09
Чайник
69 / 69 / 4
Регистрация: 15.02.2012
Сообщений: 475
17.03.2012, 16:45  [ТС] #8
Ну вообщем получается что особых отличий нет и классы и структуры взаимозаменяемы. Всем СПАСБО.
Kastaneda
17.03.2012, 16:47
  #9

Не по теме:

Цитата Сообщение от cactus09 Посмотреть сообщение
Учусь сам по книжкам и прочей лабуде
Книжки - лучшее по чему можно учиться! А по лабуде учится не надо, ни чему не научишся

andry-raser
6 / 6 / 0
Регистрация: 04.12.2011
Сообщений: 35
17.03.2012, 16:47 #10
cactus09 , ну в общем запомни что в С классов нету, а С++ и то и другое , то есть класс это усовершенствованная версия структуры, с возможностью юзать функции
Kastaneda
Форумчанин
Эксперт С++
4652 / 2860 / 228
Регистрация: 12.12.2009
Сообщений: 7,268
Записей в блоге: 2
Завершенные тесты: 1
17.03.2012, 16:50 #11
вот уже обсуждалось Отличия между структурами и классами
почитай, там умные люди объяснили лучше, чем в книгах

Добавлено через 53 секунды

Не по теме:

Цитата Сообщение от andry-raser Посмотреть сообщение
то есть класс это усовершенствованная версия структуры, с возможностью юзать функции
Jupiter же в 5-ом посте написал правильный ответ, вы сообщения читаете?

silent_1991
17.03.2012, 17:20
  #12

Не по теме:

Цитата Сообщение от Kastaneda Посмотреть сообщение
вы сообщения читаете?
Зачем читать, когда можно писать?

Evg
Эксперт CАвтор FAQ
17624 / 5848 / 375
Регистрация: 30.03.2009
Сообщений: 16,124
Записей в блоге: 26
17.03.2012, 17:59 #13
Цитата Сообщение от cactus09 Посмотреть сообщение
Ну вообщем получается что особых отличий нет и классы и структуры взаимозаменяемы
Какие есть технические отличия - сказано в посте #5. Идеологически структура и класс отличаются. Класс обычно используется для реализации чёрного ящика с определёнными интерфейсами, а структура обычно используется как белый ящик с данными.
Orodunaar
0 / 0 / 0
Регистрация: 24.07.2013
Сообщений: 44
17.06.2014, 19:16 #14
andry-raser, в С классов нету, но функции в структуре использовать можно и за просто!
Через указатель на адрес начало функции. Если интересно, могу привести пример.
Evg
Эксперт CАвтор FAQ
17624 / 5848 / 375
Регистрация: 30.03.2009
Сообщений: 16,124
Записей в блоге: 26
17.06.2014, 20:39 #15
Цитата Сообщение от Orodunaar Посмотреть сообщение
Если интересно, могу привести пример
Приведи
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2014, 20:39
Привет! Вот еще темы с ответами:

В чем отличия разработки приложения 32-x и 64x? - C++
Попытался погуглить и не нашел ничего стоящего. Пишу уже пару лет на с++ и только сейчас задался этим вопросом..... если есть интересные...

В чем отличия между union и struct? - C++
Здравствуйте! Вопрос в названии темы

В чем существенные отличия Array и Vector - C++
В чем существенные отличия, что и когда предпочтительно использовать?

Обьясните нубу доступно в чем отличия?..VS с++ vs. Builder с++ - C++
Обьясните нубу доступно в чем отличия?..VS с++ vs. Builder с++ есть ли принцыпиальные отличия?..ведь язык-то один) ваши предпочтения?..)


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

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

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