![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| AlexSm |
|
|||
|
Unregistered |
|
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
AlexSm, передай указатель на неё.
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
Baa а через тип структуры разве не получиться
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
проверял- работает -------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Step В твоем случае передаеться в стек вся структура, затем вызывается подпрограмма которая ее отттуда забирает. В вариантеBaa в стек помещается только указатель. При больших размерах структуры работа программы может замедлится.
Есть иакже третий вариант
|
|||
|
||||
| SETQ |
|
||||
|
Unregistered |
whooooops!... а что это за фишка?
может чего-то поменялось, а я и не знаю.... :) есть и четвёртый способ, раз уж на то пошло ;)))))))
не воспринимать как руководство к действию пожалуйста :)) |
||||
|
|||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Не помню как правильно называется, что-то вроде ссылочной переменной
|
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
Это передача параметров по ссылке (так модно передавть не только структуры, но и любые данные). Когда передается не значение переменной, а ссылка на нее. -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| SETQ |
|
||||
|
Unregistered |
так...
если вы имеете в виду ссылочные переменные, то, опять же по-моему, выглядеть это должно иначе
|
||||
|
|||||
| -=Baa=- |
|
|||
|
Unregistered |
Есть еще много извращенных способов передачи
в инт заносим адрес, а потом его юзаем как начало структуры. (тоже самое, что и по ссылке) |
|||
|
||||
| Paradox |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 1135 Регистрация: 18.11.2002 Где: Россия Репутация: нет Всего: 1 |
наверное моЖно а если все-таки моДно, то мне кажется что передавать надо не так как модно, а так как удобно или практично -------------------- --- |
|||
|
||||
| Alex101 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: нет Всего: 10 |
Paradox прав - это намного практичнее. Передавать по значению удобно простые типы данных (int, char и т.д.), иначе проще передавать ссылку на них, я бы сказал даже, "лучше" - нет смысла запихивать в стек громоздкие данные - смысла тут действительно будет ноль, а вот торможение может появиться. Представьте себе, что лучше сделать - передать в функцию класс - какой-нибудь CEdit или указатель на него? -------------------- С уважением, А. Фролов. |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Да все правильно. Малось не там & поставил А насчет стека, так ссылочная переменная для того и существует чтоб в сетк значению не запихивать. А насчет удобства, если ты кусок кода переделываешь в подпрограмму, то при использовании ссылочной переменной ничего менять не придется а для адреса выражение вида newvalue=a.name; надо заменять на newvalue=a->name; . Если кусок кода большой то и такой правки может быть достаточно много. Выгода: если захочешь потом из подпрограмы опять вернуть кусок кода то такие выражения обратно подправлять не нужно. Недостатки: на мой взгляд главный, что ссылочная переменная должна быть проинициализирована при создании, значет объявить ее членом класса не удастся, да и проверка на нулевой адрес (как при работе с указателем) некорректна. |
|||
|
||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 4 Всего: 41 |
Удастся, но нужно будет ее проинициализировать в списке инициализации конструктора. -------------------- Волны гасят ветер... |
|||
|
||||
| brb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 7.1.2003 Репутация: нет Всего: нет |
Мне непонятно другое. Перед тем как решать задачу, я бы хотел знать, какие цели преследуются. Решений-то несколько. Например, если мне надо эти передаваемые параметры модифицировать и возвращать, то ни о каких других вариантах, как только через указатель(ссылку), не может быть и речи. Если это просто набор параметров, то тогда определяющими параметрами станут их число, скорость выполнения и удобство(простота) кода. Нету общего решения для общего случая. Извините.
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |