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

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

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

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

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

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

Заранее спасибо.
0
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++
Дарова, сабж ясен из заголовка

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Хедин
73 / 68 / 36
Регистрация: 17.05.2014
Сообщений: 301
17.06.2014, 21:01 #16
andry-raser, cactus09, структура это тот же класс, только с публичными по умолчанию полями. Функции работают и там, и там. Можете попробовать запустить данный код и убедиться:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
struct man
{
    int x, y;
    int get_2x();
};
 
int man::get_2x()
{
    return x*x;
}
 
int main()
{
    man tmp;
    tmp.x = 6;
    std::cout << tmp.get_2x() << std::endl;
    return 0;
}
1
Orodunaar
0 / 0 / 0
Регистрация: 24.07.2013
Сообщений: 44
17.06.2014, 22:25 #17
Evg, проект комерческий, поэтому целиком код модуля привести не могу. Но, не большой кусок кода, что бы можно было уловить суть, да. Это куски кода модуля меню для ARMки и Графического дисплея. Структура меню для понимания и простоты демонстрации взята из первой версии модуля, так как дальше он разрося до 12 файлов по несколькосот строк в каждом.


C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#define Sys_Menu    &Menu[ 0]
#define ModBuss     &Menu[ 1]
#define Service     &Menu[ 2]
#define Mode        &Menu[ 3]
#define Options     &Menu[ 4]
void qwe1 (void);
 
static struct typeMenu Menu[28] ={     // инициализация меню
       {"Sys_Menu        \x0", Options ,   ModBuss,     Sys_Menu1,  Sys_Menu,10, 1, 1,  &qwe3},
       {"ModBuss         \x0", Sys_Menu,   Service,     Param0,     ModBuss, 1, 5,  5,  &qwe},
       {"Service         \x0", ModBuss ,   Mode,        UART,       Service, 1, 5,  10, &qwe},
       {"Mode            \x0", Service,    Options,     mode1,      Mode,    1, 5,  15, &qwe},
       {"Options         \x0", Mode,       Sys_Menu,    LCD_Optns,  Options, 1 ,5,  20, &qwe},
 
static struct typeMenu *pMenu = Sys_Menu;//0
 
//Исполняем функцию в пункте меню.
 if (renled){pMenu->p1f(i);}/*нахождения в текущем пункте*/
0
Evg
Эксперт CАвтор FAQ
17810 / 6016 / 388
Регистрация: 30.03.2009
Сообщений: 16,531
Записей в блоге: 26
17.06.2014, 23:29 #18
Ну и где тут функции в структуре? Или для тебя функция и указатель на функцию - это одно и то же?
0
Orodunaar
0 / 0 / 0
Регистрация: 24.07.2013
Сообщений: 44
18.06.2014, 00:30 #19
А я и не говорил о том, что можно расположить функцию в структуре, а о том, что её можно использовать в функции.

Цитата Сообщение от Orodunaar Посмотреть сообщение
в С классов нету, но функции в структуре использовать можно и за просто!
0
Evg
Эксперт CАвтор FAQ
17810 / 6016 / 388
Регистрация: 30.03.2009
Сообщений: 16,531
Записей в блоге: 26
18.06.2014, 13:18 #20
Ну и покажи мне пальцем, где ты используешь функции в структуре?
0
Kuzia domovenok
1891 / 1746 / 118
Регистрация: 25.03.2012
Сообщений: 5,925
Записей в блоге: 1
18.06.2014, 14:01 #21
Цитата Сообщение от Orodunaar Посмотреть сообщение
что её можно использовать в функции.
о том, что её(структуру) можно использовать в функции ты не писал. Ты писал как раз-таки о том, что якобы функцию можно использовать в структуре.
0
FVF
0 / 0 / 0
Регистрация: 03.07.2015
Сообщений: 15
05.02.2017, 10:13 #22
согласен, я тоже так делал, в структуре хранишь указатель на функцию и получается, что в структуре у тебя хранится подобие метода
C
1
2
3
4
5
6
7
8
9
10
11
12
13
typedef struct item_str
{
    struct item_str *nextItem;
    struct item_str *prevItem;
} Item_t;//элемент списка
typedef Item_t* (*M_DelItem)(Item_t* Item);
typedef struct list_str
{
    struct item_str *firstItem;
    struct item_str *lastItem;
    unsigned int    NumItems;
    M_DelItem       DelItem;//особый метод удаления элемента
} List_t;//список
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2017, 10:13
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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