Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
1

Требуются пояснения по коду

02.03.2017, 14:07. Показов 503. Ответов 14
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Приветствую. Штурмую тут методичку, и некоторые моменты не ясны:
C++
1
2
3
4
5
6
7
8
9
10
class person
{ int age; 
 ... 
public: 
 … 
 void operator++(){ ++age;} 
 };
void main()
{class person jon; // что за действие..?
 ++jon;}             //... и это
А вот другой кусок:

C++
1
2
3
4
5
6
7
8
struct TEvent
{int what                                      //что
             union{                            //это
                      int evNothing;         //такое
                      union{int command; //?
                      int a;}
                     }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.03.2017, 14:07
Ответы с готовыми решениями:

Необходимы пояснения по коду
Здравствуйте знатоки C++. Прошу не бранить меня сильно за мои вопросы. Только начал изучать C++....

Пишем рогалик: пояснения по коду и его критика
Здравствуйте! Сегодня сел писать рогалик, в процесе возникло несколько вопросов (в виде коментариев...

Двоичная быстрая Сортировка массива символов (пояснения по коду)
Добрый день,у меня есть реализация быстрой Сортировки массива символов, в принципе и алгоритм и код...

Требуются пояснения по коду
Вот код: #include <windows.h> #include <iostream> using namespace std; volatile int n; ...

14
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
02.03.2017, 14:24 2
Цитата Сообщение от Tankist 90 Посмотреть сообщение
class person jon; // что за действие..?
Создание экземпляра класса person с именем jon.
Цитата Сообщение от Tankist 90 Посмотреть сообщение
//... и это
Использование operator++().
Цитата Сообщение от Tankist 90 Посмотреть сообщение
А вот другой кусок
Отформатируйте нормально, тогда и поговорим.
1
Велосипедист...
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
02.03.2017, 15:02 3
GbaLog-, я работу union'а не очень хорошо знаю, но разве такая запись допустима?
Цитата Сообщение от Tankist 90 Посмотреть сообщение
C++
1
2
3
4
5
union{ //это
  int evNothing; //такое
  union { int command; //?
  int a; }
}
0
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
02.03.2017, 15:10  [ТС] 4
Цитата Сообщение от Captain Maxee Посмотреть сообщение
но разве такая запись допустима
Что было в методичке, то и скопипастил...
Цитата Сообщение от GbaLog- Посмотреть сообщение
Отформатируйте
C++
1
2
3
4
5
6
7
8
struct TEvent
{int what                                    
 union{                            
 int evNothing;         
union{int command; 
 int a;
        }
}
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
02.03.2017, 15:44 5
Цитата Сообщение от Captain Maxee Посмотреть сообщение
разве такая запись допустима?
А почему нет?

Добавлено через 29 секунд
Tankist 90, Это не форматирование, такое даже не скомпилируется...
0
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
02.03.2017, 15:56  [ТС] 6
Цитата Сообщение от GbaLog- Посмотреть сообщение
Это не форматирование
Я тебя не понимаю. Что конкретно мне сделать?
Повторюсь ещё раз - всё копипастил символ в символ из методички, что дал препод...
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
02.03.2017, 15:58 7
Если попытаться это исправить в соответствии с правилами языка, то получится:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct TEvent
{
    int what;                                    
    union
    {                            
        int evNothing;         
        union
        {
            int command; 
            int a;
        };
    };
};
Но я бы этот бред переписал так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using namespace std;
struct TEvent
{
    int what;                                    
    union
    {                            
        int evNothing;         
        int command; 
        int a;
    }how;
};
int main() 
{
    TEvent tt;
    tt.what=1;
    tt.how.command=2;
    cout<<tt.what<<' '<<tt.how.evNothing<<endl;
}
1
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
02.03.2017, 16:07  [ТС] 8
Цитата Сообщение от zss Посмотреть сообщение
в соответствии с правилами языка
А, вот оно что. Я просто не знаком с union и думал так надо...

Добавлено через 5 минут
Цитата Сообщение от zss Посмотреть сообщение
переписал так
Смысл понял, но что такое how?
C++
1
}how;
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
02.03.2017, 16:14 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct TEvent
{
// структура состоит из 2 полей:
    int what;     //  1 поле - целое число what                              
    union      // 2 поле - объединение, чтобы оно не путалось назовем его how
    {      
// оно содержит 3 поля, которые расположены одно поверх другого (занимают одну и ту же память):                      
        int evNothing;         
        int command; 
        int a;
    }how;
};
1
Велосипедист...
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
02.03.2017, 17:25 10
GbaLog-, union без имени допустим?
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
02.03.2017, 17:35 11
Цитата Сообщение от Captain Maxee Посмотреть сообщение
union без имени допустим?
Да, а почему вы думаете, что нет? Вообще, я не вспомню ничего, у чего бы в с++ обязательно должно было бы быть имя.
Не считая typedef и using.
1
Велосипедист...
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
02.03.2017, 18:12 12
GbaLog-, а как тогда обратиться к элементу two в данной структуре, к примеру:
C++
1
2
3
4
5
6
struct Test
{
  int d;
 
  union { zero, one, two };
}
Или обратиться нельзя, но память занимает?
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
02.03.2017, 18:58 13
Цитата Сообщение от Captain Maxee Посмотреть сообщение
а как тогда обратиться к элементу two в данной структуре
А что такое two? Оно типа не имеет.
И памяти не занимает, это лишь объявление объединения, объект где?

Добавлено через 2 минуты
http://rextester.com/QBEUAU10580
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//g++  5.4.0
 
#include <iostream>
 
struct A
{
    union { int one; };
};
 
int main()
{
    A a;
    a.one = 10;
    std::cout << "Hello, world!\n";
}
0
Велосипедист...
353 / 220 / 73
Регистрация: 15.12.2015
Сообщений: 785
02.03.2017, 19:14 14
GbaLog-, кирпич мне на голову
Я с перечислением спутал (enum)
union еще не осваивал...
0
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,713
02.03.2017, 21:04 15
Цитата Сообщение от Captain Maxee Посмотреть сообщение
Или обратиться нельзя, но память занимает?
обратиться можно. но тогда не видно, что это данные объединения:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
using namespace std;
struct TEvent
{
    int what;                                    
    union
    {                            
        int evNothing;         
        int command; 
        int a;
    };
};
int main() 
{
    TEvent tt;
    tt.what=1;
    tt.a=0;
    cout<<tt.what<<' '<<tt.evNothing<<endl;
}
1
02.03.2017, 21:04
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.03.2017, 21:04
Помогаю со студенческими работами здесь

Требуются пояснения
Доброго времени суток. for i := AdvStringGrid2.FixedRows to AdvStringGrid2.RowCount-1 do ...

Требуются пояснения по работе с XML
Здравствуйте. Я пытаюсь научиться работать с XML, в частности сохранять данные в файл и читать из...

Требуются пояснения к регулярным выражениям
Для текстового значения text приведен паттерн. Объясните, пожалуйста, 1. для чего во 2-м примере...

Архитектура вывода контента, особенности работы редактора, требуются пояснения
Здравствуйте. Требуются некоторые пояснения по архитектуре вывода контента и особенностям работы...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru