Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
1

А можно в функцию, или перегруженный оператор передать ссылку на копию?

02.11.2014, 12:11. Показов 700. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
И какой надо написать прототип?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2014, 12:11
Ответы с готовыми решениями:

Можно ли передать в функцию указатель на перегруженный оператор?
Снова здравствуйте) Можно ли передать в функцию указатель на перегруженный оператор и как?...

Почему перегруженный оператор = должен возвращать ссылку на объект
Объясните доступно пожалуйста. Почему перегруженный оператор= должен возвращать ссылку на...

Как передать в функцию копию массива?
Доброго времени суток. Облазила кучу тем, но так и не поняла, как передать в функцию копию массива....

Как передать копию массива в функцию?
Как реализовать функцию, чтобы массив, передаваемый в качестве аргумента, невозможно было изменить...

7
Модератор
Эксперт С++
13507 / 10757 / 6412
Регистрация: 18.12.2011
Сообщений: 28,712
02.11.2014, 12:53 2
C++
1
2
3
4
5
6
7
8
9
10
void f(int& n)
{
   n++;
}
int main()
{
   int k=1;
   f(k);
   cout<<k;
}
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
02.11.2014, 14:31  [ТС] 3
Ссылку на копию, а не на сам объект.
0
3257 / 2059 / 351
Регистрация: 24.11.2012
Сообщений: 4,909
02.11.2014, 14:48 4
1. Явно создать копию объекта.
2. Передать эту копию в функцию.
Или сразу принимать аргумент по значению.
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
02.11.2014, 15:51  [ТС] 5
При передаче по значению объект будет целиком скопирован в стек, а хотелось бы в другое место. А явно копировать - это вообще не то. Где их создавать? В стековой области локальных данных вызывающей функции? И чем это лучше? Явно выделять в куче и потом освобождать? Лучше уж все большие члены выделять по new в конструкторе.
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
02.11.2014, 15:54 6
Цитата Сообщение от taras atavin Посмотреть сообщение
объект будет целиком скопирован в стек, а хотелось бы в другое место.
В какое?
Цитата Сообщение от taras atavin Посмотреть сообщение
явно копировать - это не то
Что значит "не то"? Что тогда "то"?

Нужно поверхностное копирование?
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
02.11.2014, 15:56  [ТС] 7
Цитата Сообщение от MrGluck Посмотреть сообщение
В какое?
В идеале в кучу.
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
02.11.2014, 20:58 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
void foo(int *k)
{
    std::cout << *k << " " << k << std::endl;
}
 
int main ()
{
    int x = 42;
    foo(&x);
 
    int *px = new int(x);
    foo(px);
    delete px;
}
Добавлено через 52 секунды
Вариант через ссылку:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
 
void foo(int &k)
{
    std::cout << &k << " " << k << std::endl;
}
 
int main ()
{
    int x = 42;
    foo(x);
 
    int *px = new int(x);
    foo(*px);
    delete px;
}
0
02.11.2014, 20:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2014, 20:58
Помогаю со студенческими работами здесь

г-но код или можно ли передать метку (от гоуту) в функцию как параметр?
Собственно вопрос в заголовке, даже не знаю как это мне в голову пришло, но все же интересно xD

Передать в функцию ссылку на bitset
#include &lt;bitset&gt; using namespace std; void makeErastofen(uint N, bitset *bbuf) { const...

Как передать в функцию ссылку на структуру?
Добрый вечер, помогите пожалуйста разобраться. Нужно чтобы функция myProc принимала не структуру, а...

Передать ссылку на функцию с параметрами, но не вызывать ее
когда я делаю так: var myFunction = otherFunction(name, id); то otherFunction вызывается. Как...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru