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

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

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

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

16.01.2016, 22:45. Просмотров 262. Ответов 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;
 
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.01.2016, 22:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как передать в функцию ссылку на структуру? (C++):

Как передать указатель на структуру в функцию - C++
Подскажите как передать указатель *arr на структуру в функцию2, чтобы в ней использовать уже заполненные массивы: void func1() ...

Как передать в функцию число и структуру побайтно? - C++
Здравствуйте!!! Нужно написать функцию которая принимает некую структуру и число побайтно.

Как передать в функцию строку и инициализировать ею структуру? - C++
#include &lt;iostream&gt; using namespace std; struct bar { char name; double ves; int kollors; }; void funk(bar&amp; konf, char...

Как передать в функцию указатель на структуру, если эта структура не определена глобально? - C++
Проблема заключается в следующем: предположим есть некая структура, которая была определена внутри функции main. Далее я допустим хочу...

как передать структуру в функцию, чтобы после выполнения функции он(массив в данном случае) вернулся измененным? - C++
const int size = 256; struct MARKER { char mark; } void processing(MARKER struct_m) { //тут какие-то изменения...

Передать структуру в функцию - C++
что не так в моей передаче структуры и массива в функцию? void Sort_date (struct ptoject&amp; proj, int &amp;mas, int num) -функция ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Croessmah
Эксперт CЭксперт С++
13234 / 7506 / 846
Регистрация: 27.09.2012
Сообщений: 18,440
Записей в блоге: 3
Завершенные тесты: 1
16.01.2016, 22:47 #2
C++
1
void myProc(vs & my_struct)
1
Nosey
1348 / 399 / 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;
 
}
1
Kotik_leapold
73 / 68 / 48
Регистрация: 18.12.2015
Сообщений: 390
16.01.2016, 23:33 #4
Здравствуйте, в указаном случае можно использовать два варианта:

первый, функция в качестве параметра ссылка
C++
1
              void myProc(vs& my_struct)
доступ к полям осуществляется через "."
другой, функция в качестве параметра указатель
C++
1
               void myProc(vs* my_struct)
доступ к полям осуществляется через "->"
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.01.2016, 23:33
Привет! Вот еще темы с ответами:

Не получается передать структуру в функцию - C++
#include &lt;iostream&gt; using namespace std; struct Node { int e; int c; Node *next; };

Передать структуру в функцию другого класса - C++
Добрый день, при выполнении КР возник затор, необходима подсказка. Нужно создать объект класса и инициализировать его конструктором со...

А можно в функцию, или перегруженный оператор передать ссылку на копию? - C++
И какой надо написать прототип?

Не получается передать ссылку в функцию при разделении кода на несколько файлов - C++
В подключаемом файле parse.cpp находится функция и её объявление в parse.h int parse(Lexem &amp;lexer, In &amp;in) { int lev = 0; ...


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

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

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