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

Объяснить, что делает операция *& и чем она отличается от простого указателя? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Имитация контейнеров. Классы http://www.cyberforum.ru/cpp-beginners/thread1730177.html
Я создал через контейнеры, все работает замечательно. Но попросили сделать еще без использования контейнеров, можете помочь с кодом? Где и как его изменить? Вообще не могу сообразить. Создать...
C++ Как открыть определенный файл через ShellExecute Такая проблема, не знаю, как открыть (указать путь) к bat файлу ,который хочу открыть. делал так не получается. case 4:{ShellExecute(NULL, "open", "123.bat", "/select,... http://www.cyberforum.ru/cpp-beginners/thread1730176.html
Вывести массив содержащий длины всех серий исходного массива C++
Снова здравствуйте! Есть задача: "Дан целочисленный массив размера N. Назовем серией группу подряд идущих одинаковых элементов, а длиной серии - количество этих элементов (длина серии может быть...
C++ Копирование определенных строк
Всем привет. Задача скопировать строки из txt файла начиная с 16-ой строки в новый txt файл. Есть код но он копирует весь файл целиком. Есть подозрения что нужно использовать копирование с...
C++ Дана строка, вывести различные слова и число их вхождений http://www.cyberforum.ru/cpp-beginners/thread1730144.html
Помогите,пожалуйста. Нашел код рабочей программы,но тут очень много непонятного для меня,нужно написать использую string,iostream,cctype #include <stdio.h> #include <stdlib.h> #include <string.h>...
C++ Можно ли построить башню с заданными параметрами? Вдохновленный легендой о вавилонской башне Петр решил построить ее аналог. Для этого он взял N=22 детских строительных кирпичей и выбрал для себя размер основания D=2. И высоту башни H - 8. Он решил... подробнее

Показать сообщение отдельно
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6503 / 3139 / 307
Регистрация: 04.12.2011
Сообщений: 8,661
Записей в блоге: 5
10.05.2016, 01:14
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Не совсем понимаю, в чем ценность утверждения "никакой ссылки вообще нет".
Сейчас попробую объяснить, что я имел ввиду. Когда в функции объявлен формальный параметр типа T, то это значит, что функция ожидает объект типа Т или типа, который неявно приводится к..., что в данном контексте одно и то же. Ссылка отличается от обычных типов тем, что там, где объявлено T & вовсе не ожидается ссылка на T (хотя её можно туда передать)), а в большинстве случаев ожидается именно объект типа T. Как уж это реализуется, через указатель ли, через резервирование в статической памяти (безумие) места для глобальных объектов не суть. Важно, что данное объявление меняет контракт.
Дело в том, что с моей точки зрения, инициализация ссылки, - формального параметра внешней переменной не логична. Почему это мы в новой рабочей области, инициализируем ссылку объектом из зоны вызова, а не его копией? Тут имеет место именно соглашение, а атрибутика ссылки только запутывает. Если бы формальный параметр объявлялся как-нибудь T# и называлось это передачей по происхождению (), это работало бы ничуть не хуже и не могло бы быть спутано с ссылкой в пределах одной области, для которой осталось бы T &.
Всё сказанное более чем спорно, но я имел ввиду именно это. Объявление ссылки в области, - объявление синонима, а объявление ссылки формальным параметром не означает, что передавать нужно именно ссылку. В этом смысле там нет требования передавать ссылку. У других типов есть требование передавать тип. В этом смысле, опять же, объявление переменной (не ссылочной) в области и в качестве параметра, наоборот, - родственны и по виду и по действию.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru