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

передать ссылки как параметры - C++

Восстановить пароль Регистрация
 
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
16.03.2010, 22:13     передать ссылки как параметры #1
народ объясните для чего они нужны,ссылки как параметры,или же указатели,в книге прочел не дошло
если у кого есть книга С++ за 21 день то это страница 239
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
16.03.2010, 22:21     передать ссылки как параметры #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream.h>
void f1(int &a);   //функция может изменить значение переданного объекта
void f2(int a);    //функция не может изменить значение переданного объекта
int main(){
int p1 = 10;
f1(p1);        //равносильно оператору a = p1 локальная ссылка инициализируется
cout<<p1;   //вывод 11 значение переданного по ссылке объекта изменилось.
cout<<'\n';
f2(p1);        //равносильно оператору a = p1 инициализиуется локальная переменная. 
cout<<p1;   //значение всё равно останется 11
cout<<'\n';
 
 
return 0;
}
 
void f1(int &a){
a++;
}
void f2(int a){
a++;
}
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
16.03.2010, 23:15  [ТС]     передать ссылки как параметры #3
Genius Ignat, ого..доступ к локальным данным Оо

Добавлено через 15 секунд
ладно а тогда плюс в чем

Добавлено через 33 секунды

Не по теме:

ладно,и еще вопрос,лучше создавать объекты в дин.памяти или в стеке?

Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
16.03.2010, 23:24     передать ссылки как параметры #4
/* Преимущество перед передачей по указателю: не надо использовать & при вызове и * для обращения к памяти.*/
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream.h>
void f1(int &a);   
void f2(int *a);   
int main(){
int p1 = 10;
f1(p1);       
cout<<p1;   
cout<<'\n';
f2(&p1);      
cout<<p1;   
cout<<'\n';
 
return 0;
}
 
void f1(int &a){
a++;
}
void f2(int *a){
(*a)++;
}
Что красивее мне неизвестно мне всё фиолетово кому как читаемо мне и с указателем прёт.

Добавлено через 4 минуты
ладно,и еще вопрос,лучше создавать объекты в дин.памяти или в стеке?
За д.памятью следить надо, и надо быть аккуратным...
Ну ты понял в какую сторону намек.


Большие массивы надо создавать в д.памяти.
CheshireCat
Эксперт С++
2907 / 1235 / 78
Регистрация: 27.05.2008
Сообщений: 3,307
16.03.2010, 23:26     передать ссылки как параметры #5
Указатель может указывать "в никуда" (NULL) и "пальцем в небо" (куда-то.... где объекта нет и никогда не было). Ссылка всегда в момент ее создания ссылается на заведомо существующий объект.
^Tecktonik_KiLLeR
 Аватар для ^Tecktonik_KiLLeR
1144 / 426 / 19
Регистрация: 23.06.2009
Сообщений: 6,141
Завершенные тесты: 1
16.03.2010, 23:28  [ТС]     передать ссылки как параметры #6
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Ну ты понял в какую сторону намек.
ну да...но большая разница есть?Если аккуратность,то для меня это пустяк
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2010, 23:32     передать ссылки как параметры
Еще ссылки по теме:

Передать параметры в строку C++
Как в Dev C++ передать параметры командной строки C++
Передать параметры в main C++

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

Или воспользуйтесь поиском по форуму:
Genius Ignat
1233 / 771 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
16.03.2010, 23:32     передать ссылки как параметры #7
CheshireCat:
Ссылка может и ссылаться и на NULL/
Может:
Из книги Майрса.
НУ чтобы это было надо умудриться
char *pc = 0;
char &rc =*pc;
Yandex
Объявления
16.03.2010, 23:32     передать ссылки как параметры
Ответ Создать тему
Опции темы

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