Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
| [216.73.216.192] |
|
|
Правила раздела:
| Страницы: (495) « Первая ... 449 450 [451] 452 453 ... 494 495 ( Перейти к последнему сообщению ) |
Delphi vs C++ vs C#
, ну и Java немножко, где-то ближе к старшему байту номеров страниц
|
Сообщ.
#6751
,
|
|
|
|
Цитата D_KEY @ Я бы лично вообще предпочел const по умолчанию, чтобы возможность изменений была явным образом обозначена... Копировать по значению может еще предпочел бы? |
|
Сообщ.
#6752
,
|
|
|
|
Кстати, const появился в С именно с подачи Страуструпа и его обсуждений с Ритчи.
Добавлено Цитата --Ins-- @ Копировать по значению может еще предпочел бы? Копировать что, где и зачем ?Надо копировать - копируй, не надо - не копируй |
|
Сообщ.
#6753
,
|
|
|
|
Цитата D_KEY @ Копировать что, где и зачем ? При передаче в метод |
|
Сообщ.
#6754
,
|
|
|
|
Цитата --Ins-- @ При передаче в метод Для примитивных типов так и делают(т.к. это эффективнее). А для пользовательских-то зачем? Как раз const меня от этого избавляет: ![]() ![]() void foo(const MyType &my_object) { // Здесь я не буду изменять my_object // А если попытаюсь вызывать у него методы, изменяющие состояние, // то компилятор будет ругаться } Таким образом я могу работать с объектом, не изменяя его состояния и без всякого копирования. Если нужна именно копия, то можно передать и по значению. |
|
Сообщ.
#6755
,
|
|
|
|
Цитата D_KEY @ Для примитивных типов так и делают(т.к. это эффективнее). А для пользовательских-то зачем? А для пользовательских как? |
|
Сообщ.
#6756
,
|
|
|
|
Я же показал как - передачем ссылку на константный объект. Так же можно делать и для примитивных типов.
|
|
Сообщ.
#6757
,
|
|
|
|
Цитата D_KEY @ Я же показал как - передачем ссылку на константный объект. Так же можно делать и для примитивных типов. Подожди, я подзабыл с++ (да и не знал особо), как передается объект если const не писать? По значению? |
|
Сообщ.
#6758
,
|
|
|
|
Цитата --Ins-- @ как передается объект если const не писать? По значению? Неконстантным он передаётся. Само слово const как бэ намекает, что оно относится к мутабельноси/иммутабельности, а не к способу передачи. |
|
Сообщ.
#6759
,
|
|
|
|
Цитата MyNameIsIgor @ Неконстантным он передаётся. Я не знаю с++ и не обязан знать, так что твой фейспалм неуместен. Меня сейчас константность не интересует. Я спросил, он передается по значению, т.е. в стек помещается копия объекта, или по ссылке? |
|
Сообщ.
#6760
,
|
|
|
|
Цитата --Ins-- @ Я спросил, он передается по значению, т.е. в стек помещается копия объекта, или по ссылке? Цитата MyNameIsIgor @ Само слово const как бэ намекает, что оно относится к мутабельноси/иммутабельности, а не к способу передачи |
|
Сообщ.
#6761
,
|
|
|
|
Цитата --Ins-- @ Я спросил, он передается по значению, т.е. в стек помещается копия объекта, или по ссылке? Как скажешь - так и будет ![]() ![]() // по значению(копия) void foo(MyType a); // по значению(копия), при этом не даст изменять копию void foo(const MyType b); // по ссылке на изменяемый объект void foo(MyType & c); // по ссылке на константный объект void foo(const MyType & d); // "перенос" данных(работает для временных объектов или для обычных через явный std::move) void foo(MyType && e); |
|
Сообщ.
#6762
,
|
|
|
|
MyNameIsIgor, третий раз русским по белому: меня слово const вообще не интересует. Я спрашиваю, как передается объект?
|
|
Сообщ.
#6763
,
|
|
|
|
При чем это все никак не зависит от того, пользовательский тип или встроенный.
|
|
Сообщ.
#6764
,
|
|
|
|
Цитата D_KEY @ Как скажешь - так и будет Вот это я и хотел услышать |
|
Сообщ.
#6765
,
|
|
|
|
Цитата --Ins-- @ меня слово const вообще не интересует Да-да, я вижу ![]() Цитата --Ins-- @ как передается объект если const не писать? |