Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Уважаемый программисты Подскажите пожалуйста что обозначает данный код в С++ Код: plaintext 1. 2. 3. std::string &s - имеется ввиду эта часть И чем этот код отличается от Код: plaintext 1. 2. 3. спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 14:57 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Хорошо я понял что в случае std::string &s будет передача по ссылке Код: plaintext 1. 2. 3. 4. Правильно я понимаю что вызывающий код std::string b; t(b); Получит на выходе в b значение "a" ? И чем отличается std::string *s от std::string& s ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:08 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semen, в первом случае передача параметра по ссылке, а во втором - по значению. Причем, в первом случае функция может изменить значение источника, передаваемого в функцию по ссылке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:08 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenИ чем отличается std::string *s от std::string& s ?Для того, чтобы понять отличия указателя и ссылки, необходимо тщательно изучить перегрузку операторов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:10 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
rdb_devsemen.s.semenИ чем отличается std::string *s от std::string& s ?Для того, чтобы понять отличия указателя и ссылки, необходимо тщательно изучить перегрузку операторов. А можно хотя бы примерно описать отличие ? Или дать ссылки почитать Буду очень благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:11 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenПравильно я понимаю что вызывающий код std::string b; t(b); Получит на выходе в b значение "a" ? Правильно. Это можно не спрашивать, а просто запустить и посмотреть. semen.s.semenИ чем отличается std::string *s от std::string& s ? Если по-простому: указатель может указывать в никуда, т.е. NULL, а ссылка не может. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:12 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenrdb_devпропущено... Для того, чтобы понять отличия указателя и ссылки, необходимо тщательно изучить перегрузку операторов. А можно хотя бы примерно описать отличие ? Или дать ссылки почитать Буду очень благодарен. Гугли "С++ указатели" и "С++ ссылки" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:13 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Dima Tsemen.s.semenпропущено... А можно хотя бы примерно описать отличие ? Или дать ссылки почитать Буду очень благодарен. Гугли "С++ указатели" и "С++ ссылки" А смысл? "Т. е. указатель или ссылка (как мы уже знаем, указатели и ссылки — это два синтаксически разных способа в C++ выразить понятие адреса). " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:36 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Dima TЕсли по-простому: указатель может указывать в никуда, т.е. NULL, а ссылка не может.Да ладно?... Код: plaintext 1. Основное различие в том, что ссылка должна быть обязательно проинициализирована выражением, расценивающимся как lvalue. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:42 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
rdb_devDima TЕсли по-простому: указатель может указывать в никуда, т.е. NULL, а ссылка не может.Да ладно?... Код: plaintext 1. Основное различие в том, что ссылка должна быть обязательно проинициализирована выражением, расценивающимся как lvalue. Попробуй написать свой пример без использования указателей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:47 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
rdb_devDima TЕсли по-простому: указатель может указывать в никуда, т.е. NULL, а ссылка не может.Да ладно?... Код: plaintext 1. Основное различие в том, что ссылка должна быть обязательно проинициализирована выражением, расценивающимся как lvalue. Может быть как rvalue ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:47 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Ролг Хупин"Т. е. указатель или ссылка (как мы уже знаем, указатели и ссылки — это два синтаксически разных способа в C++ выразить понятие адреса). " Не совсем. Указатель можно менять, а ссылка это только конкретный адрес. Лучше все-таки почитать про указатели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 15:50 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
std::string &s - имеется ввиду эта часть Параметр функции, с названием s, типа "ссылка на std::string". И чем этот код отличается от Код: plaintext 1. Здесь параметр передаётся по значению, т.е. копируется. Выше параметр передаётся по ссылке, только ссылка передаётся, сам объект НЕ копируется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 16:06 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenrdb_devпропущено... Для того, чтобы понять отличия указателя и ссылки, необходимо тщательно изучить перегрузку операторов. А можно хотя бы примерно описать отличие ? Или дать ссылки почитать Буду очень благодарен. Указатель -- это адрес объекта определённого типа, который не обязательно установлен (адрес может быть пустым, не ссылаться ни на какой объект). Указатель за время жизни (переменной типа указателя) может ссылаться на несколько объектов этого типа. Т.е. может ссылаться на от 0 до бесконечности разных объектов данного типа. К указателям применимы операции адресной арифметики (увеличение и уменьшение указателей, вычисление разницы между двумя указателями). Ссылка -- это похожий, но существенно отличающийся от указателя, производный тип данных, Ссылку часто понятийно представляют как другое имя объекта. По сути ссылка -- это константный и всегда разыменованный указатель. (разыменование -- это операция * , переход от указателя к значению объекта, на который указывает указатель). Поскольку ссылка -- это константный указатель, сделать её ссылающейся на другой объект невозможно. Также по стандарту языка С++ ссылка ОБЯЗАНА ссылаться на валидный и существующий объект данного типа. Поскольку ссылка -- это разыменованный указатель, она выступает в выражениях как значение данного типа, и к ссылке неприменимы операции адресной арифметики (для применения этих операций от ссылки нужно взять адрес, т.е. получить указатель). Также идеологически в основном указатели применяются для оперирования данными, а ссылки -- для организации методов классов и функций, оперирующих классами. То, что специальный указатель this оформлен именно как указатель, это ошибка дизайна С++, он должен был бы быть ссылкой. Во многих остальных случаях где нужны ссылки на объекты в операциях и т.д. используются именно ссылки, а не указатели. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 16:28 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Огромное спасибо Все доходчиво и по делу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 16:32 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Ух ты, это я удачно на этот форум зашел. Сам как раз недавно разбирался с ссылками и указателями в C++, а тут такая тема. MasterZiv, огромное спасибо за доходчивое объяснение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 18:05 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
MasterZiv, расскажи про ссылки, пожалуйста. Не в контексте "ссылка как описатель аргумента функции", а в контексте "ссылка как альтернативное имя объекта", например: Код: plaintext 1. 2. Если объект b - всего лишь синоним объекта a, то для чего он этот синоним вообще нужен? Ну, в каком случае имеет смысл использовать b вместо использования a? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 18:36 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
КотовасияНу, в каком случае имеет смысл использовать b вместо использования a? Я, например, использую тупо для сокращения кода: Код: sql 1. 2. 3. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 18:46 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovКотовасияНу, в каком случае имеет смысл использовать b вместо использования a? Я, например, использую тупо для сокращения кода: Код: sql 1. 2. 3. Понятно, чисто С++-шная фишка. В Delphi, C# и Java переменная экземпляра класса изначально является ссылкой (э... или указателем, ибо там нет разницы), поэтому там можно было бы просто записать: Код: sql 1. 2. 3. , без & . ... ОК, сразу понятно, что также указатели полезны в общем случае, когда нужен доступ к объекту, например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Спасибо. А еще в каких случаях? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 19:20 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Котовасия, Плюсы прекрасны ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 19:23 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
semen.s.semenКотовасия, Плюсы прекрасны ) Да. Сейчас сын в ВУЗе изучает, я сбоку пристроился... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 19:24 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
Котовасияsemen.s.semenКотовасия, Плюсы прекрасны ) Да. Сейчас сын в ВУЗе изучает, я сбоку пристроился... :) А я вот спрашиваю себя - ну и нахера я стока времени на Java потратил ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 19:27 |
|
||
|
Простой вопрос
|
|||
|---|---|---|---|
|
#18+
А еще указатель это массив Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 19:34 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=39630908&tid=2017884]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
| others: | 15ms |
| total: | 186ms |

| 0 / 0 |
