Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.08.2015, 17:33   #1
Xoce05
Новичок
Джуниор
 
Регистрация: 29.08.2015
Сообщений: 9
По умолчанию Для чего нужны псевдонимы?

Для чего нужны псевдонимы, если все действия выполняются с истинной переменной?
Например,
Код:
int count = 1;
int &cRef = count;
++cRef;
можно записать проще
Код:
int count = 1;
++count;
Xoce05 вне форума Ответить с цитированием
Старый 29.08.2015, 17:56   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Какие псевдонимы? Что ты имеешь ввиду?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.08.2015, 18:02   #3
Streletz
Старожил
 
Регистрация: 03.01.2014
Сообщений: 2,870
По умолчанию

Судя по синтаксису, речь идёт о ссылках в C++. Если, конечно, не ошибаюсь.
Streletz вне форума Ответить с цитированием
Старый 29.08.2015, 18:09   #4
Xoce05
Новичок
Джуниор
 
Регистрация: 29.08.2015
Сообщений: 9
По умолчанию

ну например
Код:
int x = 3, &y = x
теперь x = y и мы можем работать с ней как с псевдонимом. так вот, для чего нам работать с y если мы также можем использовать x

любая операция с &y меняет значение x. почему бы не поменять сразу x?

Цитата:
Сообщение от Streletz Посмотреть сообщение
Судя по синтаксису, речь идёт о ссылках в C++. Если, конечно, не ошибаюсь.
да это как раз то очем я говорю
Цитата:
Ссылка может быть объявлена как другим именем, так и как псевдоним переменной, на которую ссылается.
для чего объявлять псевдоним переменной? почему бы не работать с самой переменной?

всё понял. это нужно для прямого доступа к памяти, чтобы не копировать само значение переменной (в случае например, если значение большой). я прав?

Последний раз редактировалось Stilet; 29.08.2015 в 19:04.
Xoce05 вне форума Ответить с цитированием
Старый 29.08.2015, 18:45   #5
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Xoce05 Посмотреть сообщение
всё понял. это нужно для прямого доступа к памяти, чтобы не копировать само значение переменной (в случае например, если значение большой). я прав?
Не совсем. Амперсанд используется, в основном, при передаче переменной в функцию. Например так:

Код:
Myfunction(&b)
{
  b = 2*2;
}

int a = 0;
Myfunction(a);
cout << a;
В данном случае, мы в своей программе, можем дать переменной любое имя и нам не придётся менять его в функции. Конечно, можно задать в функции возвращаемое значение через ретурн, но как быть, если функция должна возвратить 2 или 3 значения? Создавать для неё отдельную структуру? Или лучше через ссылки в параметрах. Можно и так и так, но при небольшом количестве переменных, лучше через ссылки.
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 29.08.2015, 19:11   #6
Xoce05
Новичок
Джуниор
 
Регистрация: 29.08.2015
Сообщений: 9
По умолчанию

ну во-первых у вас в функции не хватает void. во-вторых, вы таким образом не передаёте по ссылке в функцию, а наоборот, возвращаете из неё. и в-третьих, наоборот, при множественном использовании значения из функции, удобнее использовать ссылку.
Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Не совсем. Амперсанд используется, в основном, при передаче переменной в функцию. Например так:

Код:
Myfunction(&b)
{
  b = 2*2;
}

int a = 0;
Myfunction(a);
cout << a;
В данном случае, мы в своей программе, можем дать переменной любое имя и нам не придётся менять его в функции. Конечно, можно задать в функции возвращаемое значение через ретурн, но как быть, если функция должна возвратить 2 или 3 значения? Создавать для неё отдельную структуру? Или лучше через ссылки в параметрах. Можно и так и так, но при небольшом количестве переменных, лучше через ссылки.
да вообще получается что удобнее работать с ссылками

Последний раз редактировалось Stilet; 29.08.2015 в 19:43.
Xoce05 вне форума Ответить с цитированием
Старый 29.08.2015, 19:33   #7
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Цитата:
Сообщение от Xoce05 Посмотреть сообщение
ну во-первых у вас в функции не хватает void. во-вторых, вы таким образом не передаёте по ссылке в функцию, а наоборот, возвращаете из неё. и в-третьих, наоборот, при множественном использовании значения из функции, удобнее использовать ссылку.
Да, void упустил. Но через ссылку я значения передаю и возвращаю. Можете проверить.

Код:
#include <iostream.h>
#include <stdlib.h>

void MyFunction(int &b)
{
  b = 2*2;
}

int main()
{
int a = 0;
cout << a << "\n";// = 0
MyFunction(a);
cout << a << "\n";// = 4
system("PAUSE");
return 0;
}
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder
Smitt&Wesson вне форума Ответить с цитированием
Старый 29.08.2015, 19:38   #8
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,331
По умолчанию

Цитата:
Сообщение от Xoce05 Посмотреть сообщение
Для чего нужны псевдонимы, если все действия выполняются с истинной переменной?
Потому что множество объектов могут ссылаться и работать с одной переменной.
waleri вне форума Ответить с цитированием
Старый 29.08.2015, 19:54   #9
Xoce05
Новичок
Джуниор
 
Регистрация: 29.08.2015
Сообщений: 9
По умолчанию

передаёте через аргумент (a) что вы меня путаете!
Цитата:
Сообщение от Smitt&Wesson Посмотреть сообщение
Да, void упустил. Но через ссылку я значения передаю и возвращаю. Можете проверить.

Код:
#include <iostream.h>
#include <stdlib.h>

void MyFunction(int &b)
{
  b = 2*2;
}

int main()
{
int a = 0;
cout << a << "\n";// = 0
MyFunction(a);
cout << a << "\n";// = 4
system("PAUSE");
return 0;
}
Xoce05 вне форума Ответить с цитированием
Старый 29.08.2015, 19:56   #10
Xoce05
Новичок
Джуниор
 
Регистрация: 29.08.2015
Сообщений: 9
По умолчанию

Цитата:
Сообщение от waleri Посмотреть сообщение
Потому что множество объектов могут ссылаться и работать с одной переменной.
у вас количество сообщений 3 666 три шестёрки =)
по теме...так если первый объект по ссылке забирает значение и меняет его, то меняется и само значение. и с первоначальным значением другие объекты работать не смогут. это должно быть понятно
Xoce05 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для чего нужны функции javascript trilenium JavaScript, Ajax 1 11.08.2014 07:33
Для чего нужны подфорумы windows, linux??? vovken1997 Свободное общение 4 01.09.2012 00:16
Для чего нужны эти символы? Andrij Помощь студентам 0 01.11.2010 18:34
Для чего нужны ассемблерные вставки в RAD STUDIO 2009 manzar Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 07.01.2010 15:43
Для чего нужны типы данных? Вадим Буренков Паскаль, Turbo Pascal, PascalABC.NET 9 09.03.2009 21:42