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

Передача по ссылке или указателю? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Совершенные числа http://www.cyberforum.ru/cpp-beginners/thread787031.html
Как из этого кода сделать алгоритм, который находит совершенные числа. #include <iostream> using namespace std; int main() { int N,count=0; cout <<"Enter N:"; cin >>N;
C++ русский с++ когда то слышал про такую задумку. не дадите наводку. под русским я подразумеваю полный перевод операторов и основных функций http://www.cyberforum.ru/cpp-beginners/thread787029.html
C++ Доработать код
Код: #include "std_lib_facilities.h" struct Point { int x,y; }; int main() { vector<Point> original_points;
C++ C++, взять файл формата bmp
Возникла проблема! Нужна программа, которая может взять исходный файл в графическом формате bmp, считать его попиксельно и записать в текстовой файл! Добавлено через 8 минут (файл ч\б) программа...
C++ исправить ошибку в коде, пожалуйста, кому не сложно http://www.cyberforum.ru/cpp-beginners/thread786982.html
очень срочно исправить ошибку в коде, пожалуйста, кому не сложно #include <iostream> using namespace std; int sumElem( int SIZE, int arr ) { { const int SIZE=6; int arr={0}; cout <<...
C++ Про утечки памяти Здравствуйте. Может кто-нибудь посоветовать статьи на тему борьбы с утечками памяти? Дело в том, что недавно начал писать на C++ с библиотекой qt. Написал свою первую программу мониторинг объявлений... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3142 / 307
Регистрация: 04.12.2011
Сообщений: 8,673
Записей в блоге: 5
16.02.2013, 14:19
Цитата Сообщение от Croessmah Посмотреть сообщение
Ссылка лишь обертка, которая дополняет, а не заменяет указатели.
Область применения того и другого в C++ определяется конкретной ситуацией.
Совершенно согласен. И по тому как задан вопрос, ответ:
Передача по ссылке или указателю?
вполне это раскрывает. Указатели значительно шире, ссылки уже безопаснее и удобнее (тема для вечной полемики)).
Но язык это соглашение. И поскольку нет возможности написать конструктор копии без использования ссылки (просто по определению, т.к. теоретически и передача указателя тоже гарантирует предотвращение создание копии объекта. То что сам указатель копируется не проблема) то и не обойтись без ссылок как типа.
Но всё раскручивается по обычной спирали. Новичок столкнулся с главой "Ссылки и указатели", а дискуссия давно вышла из границ его понимания.
Мешает пониманию и то, что передача указателя, тоже является видом передачи "по ссылке", чисто терминологически и это встречается в литературе.

Однако ссылка и указатель не как способы передачи а как типы, определяются тем же что и типы: способ и место хранения, допустимые операции...
И разница тут огромна. Указатель - указывает на тип (массив типа, вернее, то есть область памяти которая распределена определённым образом). Даже указатель на одно значение, - указатель на массив из одного члена и обратиться можно по индексу 0)). Его тип в конечном счёте, без инициализации, не завершён в определении. Декларация и инициализации могут быть проведены раздельно, что позволяет использовать мощь указателей. В том числе и для стрельбы в ногу. Преимуществ без недостатков не бывает.
Ссылка, по определению не может быть неинициализирована. Она сразу связана. В контексте, автоматически предоставляет то, что требуется по смыслу: адрес или значение . Само имя переменной является ссылкой на себя и это позволяет передавать переменные туда, где ожидается ссылка, без каких-либо дополнительных усилий.
Кроме того, сама ссылка как переменная не требует выделения памяти.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru