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

Передача и возвращение структуры - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
17.04.2012, 12:11     Передача и возвращение структуры #1
Собственно, интересен только следующий вопрос. На одном сайте написано следующее:
Действия над структурами, в общем, ограничены. Все, что можно делать со структурой, - это взять ее адресс с помощью операции & и обращаться к ее элементам, как показано выше. Записи нельзя копировать или присваивать как единое целое; их нельзя передавать в функцию или получить оттуда целиком. Однако, к указателям на структуры это замечание не относится.
Ниже я попытался передать структуру в функцию, возвратить и присвоить её другой структуре. Все получилось. Что имелось ввиду, когда говорилось, что записи нельзя копировать и присваивать и тп.?

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
#include <iostream>
 
using namespace std;
 
struct Day
{
    int x;
    int y;
} today;
 
Day show(Day tmp)
{
    cout << tmp.x << endl;
    cout << tmp.y << endl;
    return tmp;
}
 
int main()
{
    today.x = 10;
    today.y = 20;
    Day secday = show(today);
    show(secday);
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.04.2012, 12:11     Передача и возвращение структуры
Посмотрите здесь:

Передача структуры в функцию C++
Передача структуры в функцию C++
Передача структуры по ссылке C++
Передача объекта структуры по ссылке C++
C++ Передача структуры в ф-ию
Передача структуры в функцию C++
Передача структуры в функцию C++
Передача структуры в функцию C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5943 / 5548 / 1783
Регистрация: 18.12.2011
Сообщений: 14,168
Завершенные тесты: 1
17.04.2012, 12:20     Передача и возвращение структуры #2
На самом деле в С++, операция копирования структуры и присваивания определены,
т.к. структуры в С++ являются классами и для них создается копиконструктор
и operator= по умолчанию.
Однако, надо иметь ввиду, что производится тупое копирование всех данных.
В том числе, если копируется указатель, то данные, определяемые указателем сами не скопируются.
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
17.04.2012, 12:27  [ТС]     Передача и возвращение структуры #3
Понял. Спасибо
Yandex
Объявления
17.04.2012, 12:27     Передача и возвращение структуры
Ответ Создать тему
Опции темы

Текущее время: 09:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru