Форум программистов, компьютерный форум, киберфорум
Наши страницы

Передача в функцию - ссылки, указатели, константы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ c++ Перевод сртоки из CString в локальную char http://www.cyberforum.ru/cpp-beginners/thread903869.html
Здравствутйте. Прошу помощи новичку. Ищу функцию для копирования строки из массива в локальную. Инет всегда ведет приводит за бегор с английским не очень. Help ) Добавлено через 11 минут наверно...
C++ Работа с матрицами (Получить элементы квадратной матрицы, где элементы матрицы зависят от параметров) ЗАДАНИЕ: Получить элементы квадратной матрицы , где элементы матрицы , зависят от параметров и . Из матрицы А по заданному правилу получить компоненты вектора . Вычислить значения величины... http://www.cyberforum.ru/cpp-beginners/thread903856.html
Программа для диагностики системы C++
Доброго времени суток, Господа! Пожалуйста, помогите создать программу диагностирующая систему ПК или андроид. Есть знания в области с++ и питон. Хотя бы необходимые учебники или материал.
C++ Описать класс, реализующий тип данных «вещественная матрица» и работу с ними
Доброго времени суток, необходима помощь в написании программы. Описать класс, реализующий тип данных «вещественная матрица» и работу с ними. Класс должен реализовывать следующие операции над...
C++ Блок-схема для легких программ с функциями и массивом http://www.cyberforum.ru/cpp-beginners/thread903786.html
Ребята, помогите, пожалуйста с составлением блок-схемы на данную программу для работы с массивом. Бьюсь уже какое время, и никак не получается... // Написать программу ввода в массив 20 чисел и...
C++ Вывести все числа которые делятся на 3 (от 0 до 100) Вывести все числа которые делятся на 3 (от 0 до 100) циклом for. Если есть идеи по решению буду признателен:) подробнее

Показать сообщение отдельно
Olivеr
412 / 408 / 13
Регистрация: 06.10.2011
Сообщений: 832
16.06.2013, 23:31
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int & fun(int rhs)
{
    rhs++;
 
    return rhs;
}
 
int main()
{
    int varOne = 2; 
    int varTwo;
 
    varTwo = fun(varOne);
 
    std::cout << varTwo << "\n";
 
    system("pause");
    return 0;
}
Когда мы вызываем int& fun(int rhs), то переданный аргумент передается по значению, то есть копируется, то есть создается временный объект rhs (копия переданного) в зоне видимости функции fun. Потом вы увеличиваете значение rhs. Но самое интересное кроется в возвращаемом значении.

C++
1
2
3
4
    int varOne = 2; //переменная, не ссылка
    int varTwo; //переменная, не ссылка
 
    varTwo = fun(varOne); //функция возвращает ссылку, но vatTwo не ссылка, поэтому происходит копирование
Если было бы так:
C++
1
int &vatTwo = fun(vatOne); //ошибка, функция возвращает ссылку на временный объект
В общем случае возвращать ссылку - плохая примета.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.