Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передача параметров, * или & 
:(
    Опции темы
Romikgy
Дата 21.9.2006, 12:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 8
Всего: 146



Цитата(Damarus @  21.9.2006,  09:17 Найти цитируемый пост)
И какая разница

попробуй передать в копирующий конструктор указатель smile

А вообще имхо просто разница в обращении к этой переменной, в смысле написания буковок в коде, (почти )все что можно написать юзая ссылку , можно также реализовать и через указатель


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
EvgenZ
Дата 21.9.2006, 12:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Freedom in me
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 3.8.2006

Репутация: 1
Всего: 11



Использование ключевого слова const позволяет функции работать как с постоянными объектами, так и с переменными.



--------------------
<удалено администрацией форума>
PM MAIL   Вверх
vinter
Дата 21.9.2006, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



EvgenZ не убедил smile 
ИМХО хочешь чтобы обьект менялся, передавай по ссылке, не хочешь, передавай просто так(можно и с идентификатором const, чтобы выглядело красивей smile )..


--------------------
Мой блог
PM MAIL WWW   Вверх
EvgenZ
Дата 21.9.2006, 13:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Freedom in me
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 3.8.2006

Репутация: 1
Всего: 11



Цитата

не хочешь, передавай просто так


к примеру у тебя объект не объект класса точка, а какой-нибудь супер объект, содержащий поля из объектов других классов в большом колличестве. При передаче по значению у тебя для каждого такого поля будет создаваться копия... будут вызванны конструкторы для каждого(а если еще и поле  из составного класса то и далее...) это очень затратно и расточительно.


--------------------
<удалено администрацией форума>
PM MAIL   Вверх
vinter
Дата 21.9.2006, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

Репутация: 13
Всего: 56



Цитата

супер объект,

 smile  smile  smile 
Убедил  smile 


--------------------
Мой блог
PM MAIL WWW   Вверх
Rockie
Дата 22.9.2006, 01:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1143
Регистрация: 23.4.2006

Репутация: 8
Всего: 31



При передаче по указателю используется косвенный доступ, а при передаче по ссылке - прямой. 
Код
#include<iostream>

using namespace std;

struct MyStruct
{
 int x;
};

int main(){

 MyStruct* ptr = new MyStruct;   // pointer
 ptr->x = 3;
 cout<<ptr->x<<'\n';

 MyStruct & ref = *ptr;          // reference
 ref.x = 5;
 cout<<ref.x<<'\n';

 system("pause");
 return 0;
}


imho вроде как по указателю стоит передавать текстовые массивы, так как указатель обозначает начало массива.


--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
Earnest
Дата 22.9.2006, 07:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 53
Всего: 183



Цитата(Rockie @  22.9.2006,  02:12 Найти цитируемый пост)
При передаче по указателю используется косвенный доступ, а при передаче по ссылке - прямой. 

Это всего лишь форма записи, внутренний механизм в любом случае один - указатель и косвенный доступ.

Так что разница число семантическая. Действительно, как уже здесь писали, имеет смысл передавать ссылку, когда объект обязан быть, и указатель, если возможно отсутствие объекта. Ну есть еще некоторые случаи, когда со сложными шаблонами проще использовать указатель, а не ссылку... 


--------------------
...
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0860 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.