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

Передача по ссылке или указателю? - 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 минут (файл ч\б) программа должна записать информацию о интенсивности каждого пикселя) Добавлено через 33 секунды буду очень благодарен,если поможете!
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 << "Заполите мaссив:\n"; for(int i = 0; i < SIZE; i++)
C++ Про утечки памяти Здравствуйте. Может кто-нибудь посоветовать статьи на тему борьбы с утечками памяти? Дело в том, что недавно начал писать на C++ с библиотекой qt. Написал свою первую программу мониторинг объявлений на http://free-lance.ru/ и выдача по фильтру пользователю нужных заявок. Для этой задачи я использовал cUrl, так как стандартный класс для работы с соединениями в qT мне не очень приглянулся. Тут... подробнее

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

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