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

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

Войти
Регистрация
Восстановить пароль
 
tst
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 213
#1

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

16.01.2016, 22:45. Просмотров 246. Ответов 3
Метки нет (Все метки)

Добрый вечер, помогите пожалуйста разобраться. Нужно чтобы функция myProc принимала не структуру, а ссылку на структуру.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
struct vs {
    long L;
    int i1, i2; char c[5];
};
 
void myProc(vs my_struct) {
    cout << "\n Размер структуры  = " << sizeof(my_struct) << " байт " << endl << endl;
    cout << "Значение элементов структуры в 10-ной системе счисления:" << endl;
    cout << "\tSTR.L = " << my_struct.L;
    cout << "\tSTR.i1 = " << my_struct.i1;
    cout << "\tSTR.i2 = " << my_struct.i2;
    cout << "\tSTR.c[1] = " << my_struct.c[1];
 
    cout << "\nЗначение элементов структуры в 16-ной системе счисления:" << endl;
    cout << "\tSTR.L = " << hex << my_struct.L;
    cout << "\tSTR.i1 = " << hex << my_struct.i1;
    cout << "\tSTR.i2 = " << hex << my_struct.i2;
    cout << "\tSTR.c[1] = " << hex << my_struct.c[1];
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    vs STR = { 10L, 20, 30, 'a', 'b', 'c', 'd' , 'e'};
    myProc(STR);
    cin.get();
    return 0;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2016, 22:45     Как передать в функцию ссылку на структуру?
Посмотрите здесь:
C++ Как передать указатель на структуру в функцию
Как передать в функцию число и структуру побайтно? C++
Как передать в функцию строку и инициализировать ею структуру? C++
C++ Как передать в функцию указатель на структуру, если эта структура не определена глобально?
C++ как передать структуру в функцию, чтобы после выполнения функции он(массив в данном случае) вернулся измененным?
Передать структуру в функцию C++
C++ Не получается передать структуру в функцию
C++ Передать структуру в функцию другого класса
C++ А можно в функцию, или перегруженный оператор передать ссылку на копию?
Не получается передать ссылку в функцию при разделении кода на несколько файлов C++
Как правильно написать функцию, которая редактирует структуру по полю Name и возвращает новую, исправленную структуру?.. C++
C++ Как передавать ссылку на структуру в map?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт CЭксперт С++
13051 / 7314 / 814
Регистрация: 27.09.2012
Сообщений: 18,050
Записей в блоге: 3
Завершенные тесты: 1
16.01.2016, 22:47     Как передать в функцию ссылку на структуру? #2
C++
1
void myProc(vs & my_struct)
Nosey
1346 / 397 / 107
Регистрация: 22.10.2014
Сообщений: 861
Завершенные тесты: 2
16.01.2016, 22:54     Как передать в функцию ссылку на структуру? #3
tst,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
struct vs
{
    long L;
    int i1, i2;
    char c[6]; // и тут указывать 6 элементов, а не 5, +1 для окончательного нуля.
};
 
void myProc(vs& my_struct) // и ответ на ваш вопрос тут. можно ещё написать "const vs&" вместо "vs&"
{
    cout << "\n Размер структуры  = " << sizeof(my_struct) << " байт " << endl << endl;
    cout << "Значение элементов структуры в 10-ной системе счисления:" << endl;
    cout << "\tSTR.L = " << my_struct.L;
    cout << "\tSTR.i1 = " << my_struct.i1;
    cout << "\tSTR.i2 = " << my_struct.i2;
    cout << "\tSTR.c[1] = " << my_struct.c[1];
 
    cout << "\nЗначение элементов структуры в 16-ной системе счисления:" << endl;
    cout << "\tSTR.L = " << hex << my_struct.L;
    cout << "\tSTR.i1 = " << hex << my_struct.i1;
    cout << "\tSTR.i2 = " << hex << my_struct.i2;
    cout << "\tSTR.c[1] = " << hex << my_struct.c[1];
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
 
    vs STR = { 10L, 20, 30, { 'a', 'b', 'c', 'd', 'e' } }; // стоит делать вот так.
    myProc(STR);
    cin.get();
    return 0;
 
}
Kotik_leapold
73 / 68 / 48
Регистрация: 18.12.2015
Сообщений: 364
16.01.2016, 23:33     Как передать в функцию ссылку на структуру? #4
Здравствуйте, в указаном случае можно использовать два варианта:

первый, функция в качестве параметра ссылка
C++
1
              void myProc(vs& my_struct)
доступ к полям осуществляется через "."
другой, функция в качестве параметра указатель
C++
1
               void myProc(vs* my_struct)
доступ к полям осуществляется через "->"
Yandex
Объявления
16.01.2016, 23:33     Как передать в функцию ссылку на структуру?
Ответ Создать тему
Опции темы

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