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

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

Войти
Регистрация
Восстановить пароль
 
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
#1

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

16.03.2010, 22:13. Просмотров 479. Ответов 6
Метки нет (Все метки)

народ объясните для чего они нужны,ссылки как параметры,или же указатели,в книге прочел не дошло
если у кого есть книга С++ за 21 день то это страница 239
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2010, 22:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос передать ссылки как параметры (C++):

Как передать параметры в main ? - C++
нужно передать параметры с командной строки в основную функцию. например я хочу найти cos(x). как задать и передать значение параметра X...

Как передать параметры через ShellExecute - C++ - C++
Приветствую Как передать строку и число через ShellExecute? SHELLEXECUTEINFO ShExecInfo = { 0 }; ShExecInfo.cbSize =...

Как в функцию обработки сообщений передать параметры? - C++
Как в функцию обработки сообщений типа void CMathematicsView::OnResultButton() передать параметры? Как и где написать прототип и...

Как в Dev C++ передать параметры командной строки - C++
Мне необходимо данные брать из файла. Путь к файлу нужно передавать как параметр командной строки argv. Подскажите пожалуйста как это...

Как передать параметры конструктора одного класса другому? - C++
Скажите пожалуйста, как это должно работать? Как передать параметры конструктора одного класса другому? #include <iostream> using...

как с помощю ссылки передать с функции значение F - C++
как с помощю ссылки передать с функции значение F (строка21-22) в main на вывод(строка51) вместо X?? #include<iostream> ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Genius Ignat
1236 / 774 / 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
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
16.03.2010, 23:15  [ТС] #3
Genius Ignat, ого..доступ к локальным данным Оо

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

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

Не по теме:

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

Genius Ignat
1236 / 774 / 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
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,368
16.03.2010, 23:26 #5
Указатель может указывать "в никуда" (NULL) и "пальцем в небо" (куда-то.... где объекта нет и никогда не было). Ссылка всегда в момент ее создания ссылается на заведомо существующий объект.
^Tecktonik_KiLLeR
1159 / 441 / 22
Регистрация: 23.06.2009
Сообщений: 6,235
Завершенные тесты: 1
16.03.2010, 23:28  [ТС] #6
Цитата Сообщение от Genius Ignat Посмотреть сообщение
Ну ты понял в какую сторону намек.
ну да...но большая разница есть?Если аккуратность,то для меня это пустяк
Genius Ignat
1236 / 774 / 44
Регистрация: 16.09.2009
Сообщений: 2,014
16.03.2010, 23:32 #7
CheshireCat:
Ссылка может и ссылаться и на NULL/
Может:
Из книги Майрса.
НУ чтобы это было надо умудриться
char *pc = 0;
char &rc =*pc;
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2010, 23:32
Привет! Вот еще темы с ответами:

Параметры-ссылки - C++
Плиз, киньте какую-нибудь простенькую прогу, исп. параметры-ссылки!

Передать параметры в main - C++
Нужно передать два параметра типа double в исполняемы файл ./Lab_10_2k Ни как не получается передать два параметра. Вот код основной...

Передать параметры в строку - C++
Всем привет, подскажите как правильно передать параметры в такую строку? char *stat = &quot;INSERT INTO tablica(id, mas, res) VALUES('123',...

Передать параметры в функцию. - C++
Всем привет! Не получается передать параметры из Delphi в библиотеку написанную на C++. Код программы: #define...


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

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

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