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

Ссылки и указатели - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Построение UML http://www.cyberforum.ru/cpp-beginners/thread250365.html
Можно ли создать диаграмму зависимостей UML из существующего проекта VS 2005?
C++ написать программу если можно с объяснением!!!!!!!! http://www.cyberforum.ru/cpp-beginners/thread250357.html
C++ класс эллипс
ПОМОГИТЕ ПОЖАЛУЙСТА, начала изучать с++ столкнулась с такой вот задачей...... Определить класс эллипс, продемонстрировать использование класса. Члены класса: переменные, необходимые для того, чтобы иметь возможность пользоваться стандартными функциями рисования. Обязательны функции-члены класса: нарисовать, стереть, передвинуть эллипс, изменить радиусы эллипса. может у кого есть примеры для...
C++ Сложение, вычитание, умножение
Доброго времени суток! Помогите с задачей: Написать функцию, которая складывает, вычитает или умножает два целых числа и возвращает результат (операнды и знак операции +, – или * — параметры функции). Заранее Спасибо! PS есть наработки, но чёт не так, выдаёт ошибки: num1.cpp #include<iostream>
C++ Преобразование массива с использованием функции http://www.cyberforum.ru/cpp-beginners/thread250350.html
На языке С написать с помощью функции программу. Задание: Дана матрица А и вектор B. Из сумм элементов строк матрицы сформировать вектор C. Если минимальный элемент вектора C кратен минимальному элементу вектора B, то из положительных элементов матрицы А сформировать вектор D и упорядочить его по возрастанию. Иначе матрицу А упорядочить по возрастанию. Заранее благодарен...
C++ указатель(?) на массив ситуация: мне нужно, чтобы в main был определён двумерный массив, а класс мог бы его использовать: class map { unsigned short int *field; bool isVisiable; public: map(unsigned short int ???); void show (); void hide (); подробнее

Показать сообщение отдельно
bigredcat
364 / 311 / 3
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
02.03.2011, 06:11     Ссылки и указатели
Цитата Сообщение от silent_1991 Посмотреть сообщение
bigredcat, а что вы тогда подразумеваете под "передаётся сам объект"? Что, область памяти передаётся, что-ли?
На самом деле easybudda уже сказал, и в том, и в другом случае в функцию передаётся адрес объекта, различие состоит лишь в способах работы с памятью по этому адресу.
Я и не спорю, что при передаче объекта по ссылке в функцию передается ее адрес. Как же иначе.
Но "передается сам объект" и "объект передается по значению" все-таки отличаются на мой взгляд. Иначе уже ваше утверждение, что эти понятия эквивалентны равносильно тому, что объект это есть его значение. Но объект может обладать каким-то значением (это его свойство) и значение это, в общем случае, можно менять.

Почему я так сказал: "сам объект", а не "адрес объекта". По тому, что рассуждая с точки зрения прикладного программиста C++ я вижу, что ссылка ведет себя так, как-будто я использую сам объект. Вот пример:
C++
1
2
3
4
5
int v = 0;
int &rv = v;
rv++;
cout << v << '\n' << rv << '\n';
cout << &v << '\n' << &rv << '\n';
Если рассматривать rv как адрес объекта, то логично предположить, что инкремент увеличит адрес, но это не так. Увеличится значение самого объекта.
Вот нас учили, не нужно путать ссылки с указателями, что ссылка это синоним (другое имя) той же самой сущности.
Теперь, если посмотреть на все это с точки зрения разработчика компиляторов, то, думаю, ссылка окажется указателем жестко привязанным к определенной переменной.
 
Текущее время: 11:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru