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

Передача структуры по ссылке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Динамическое выделение памяти http://www.cyberforum.ru/cpp-beginners/thread711459.html
Не могу разобраться с динамическим выделением памяти. Объект - учреждение. Имеет параметры - название, тип, год основания, количество работников, общий фонд заработной платы. Задача - вводить количество учреждений, заполнять их данными, с возможностью редактирования этих данных. Помогите, пожалуйста. #include "stdafx.h" #include <iostream> using std::cout; using std::cin; using std::endl;...
C++ Code:: Blocks (не на тему программирования, а на тему настройки) доброе время суток сразу попрошу прощения за созданную тему в этом разделе, которая не совсем по теме тут, но подходящей темы я не нашел :) итак, имеется Code::Blocks подшаманил я к нему паскалевский компилятор и поигравшись с настройками, получил следующее, из меню могу создавать проект паскалевский, все отлично проходит(скрины 1-5), http://www.cyberforum.ru/cpp-beginners/thread711453.html
стек.не корректный вывод на экран C++
написала код все работает число вноситься в стек потом его оттуда убираем, реализация списками. но кроме того выводит какой-то мусор скомпильте пожалуйста у себя. #include<iostream> #include<conio.h> using namespace std; struct List_Lifo {
Метод Холецкого C++
Задача: Решить СЛАУ с помощью метода холецкого (квадратного корня). Вывести значение y и вектора невязки r Ay=f - СЛАУ r=Ay-f Метод основан на представлении положительно определенной симметричной матрицы А в виде A=L*LT , где L — нижняя треугольная матрица с положительными действительными элементами на диагонали Работаю в Eclipse. Написал код, но не могу понять где ошибка. вроде все по...
C++ Сортировка строк http://www.cyberforum.ru/cpp-beginners/thread711440.html
Сколько букв "У" в введенном слове стоит на четных местах?
C++ Записать строку с пробелами в string, с помощью потока. Здравствуйте. Можно ли с помощью потока ввода записать строку с пробелами в тип string. Если да, то как. подробнее

Показать сообщение отдельно
kravam
быдлокодер
 Аватар для kravam
1512 / 872 / 44
Регистрация: 04.06.2008
Сообщений: 5,271
27.11.2012, 23:24     Передача структуры по ссылке
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <stdio.h>
 
 
//Это вот структура
struct str {
 int x;
 int y;
};
 
//Это функция, принимающая ссылку на такую структуру и изменяющие её члены   
void f (str&);                                                             //
                                                                           //
                                                                           //
int main () {                                                              //
                                                                           //
  //Пока всё должно быть понятно, объявили переменную типа str и присвоили её
  //членам определённые значения.                                          //
  str str_;                                                                //
  str_.x= 10; str_.y= 20;                                                  //
  //ВЫведем значения str_ на экран                                         //
  printf ("str_x= %d      str_.y= %d\n", str_.x, str_.y);                  //
                                                                           //
  //теперь вызываем функцию f ()                                             
  f (str_);                                                                //
  //НУ вот, в функцию f передан УКАЗАТЕЛЬ на str_, то есть АДРЕС последней   
  //А кажется- будто сама переменная str_, но ни фига подобного            //
                                                                           //
  //Осталось посмотрет, изменились ли сами значения или нет:               //
  printf ("str_x= %d      str_.y= %d\n", str_.x, str_.y);                  //
  //Видим, что изменились                                                  //
  //Это говорит о том, что передача была ПО ССЫЛКЕ , то есть передавался     
  //только адрес str_, а казалось, что передаётся самао str_; это          //
  //я бы сказал, упрощение синтаксиса достигнуто было за счёт применения   ссылки
                                                                           //
  getchar ();                                                              //
  return 0;                                                                //
}                                                                          //
//                                                                           
 
 
                       //++++++++++++++++++++++++
                       //реализация функции f () 
                       //++++++++++++++++++++++++
 
void f (str& str_) {
 //Работает со структурой, как будто она передана не по ссылке, а по значению
 //то есть синтаксис обычный                                               //
 str_.x= 100;                                                              //
 str_.y= 200;                                                              //
 //А если бы передача была с помощью указателя, вот так: f (&str); тогда     
 //синтаксис был бы таким: str_->x; str_->y                                  
 //Вот и всё                                                                 
}
 
Текущее время: 03:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru