pointer to object in C++(QT)

Модератор: Модераторы разделов

Аватара пользователя
folibis
Сообщения: 92
ОС: Arch-ик

pointer to object in C++(QT)

Сообщение folibis »

Есть функция которая требует референс на объект
void func(QPixmap & pixmap)

А у меня есть только указатель QPixmap * pixmap
как же мне его туда передать?
עת לכל חפץ
Спасибо сказали:
Аватара пользователя
Asgard
Сообщения: 215
Статус: North Valfader

Re: pointer to object in C++(QT)

Сообщение Asgard »

не понял вопроса.
просто взять и передать: func(pixmap)
sator arepo tenet opera rotas ;)
------------------------------------------------------------
LJ
Спасибо сказали:
Аватара пользователя
folibis
Сообщения: 92
ОС: Arch-ик

Re: pointer to object in C++(QT)

Сообщение folibis »

Asgard писал(а):
18.02.2006 05:28
не понял вопроса.
просто взять и передать: func(pixmap)

Ну... У меня есть только поинтер на обьект, а передать нужно сам обьект, а вернее референс.
две большие разницы

func(QPixmap * pix) и func(QPixmap & pix)
עת לכל חפץ
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: pointer to object in C++(QT)

Сообщение Zeus »

Ну попробуй разыменовать указатель и передать то что получится:
func (*pix);
Спасибо сказали:
n1tr0gen
Сообщения: 149

Re: pointer to object in C++(QT)

Сообщение n1tr0gen »

folibis писал(а):
18.02.2006 04:12
Есть функция которая требует референс на объект
void func(QPixmap & pixmap)

А у меня есть только указатель QPixmap * pixmap
как же мне его туда передать?


func(*pixmap);

/* Sorry за повтор, не увидел что уже ответили до меня */
Спасибо сказали:
Аватара пользователя
folibis
Сообщения: 92
ОС: Arch-ик

Re: pointer to object in C++(QT)

Сообщение folibis »

:) Всё получилось. вот спасибо.
А я и не знал про такую возможность :huh:
Правда механизм не совсем понятен. ну буду разбираться ...
עת לכל חפץ
Спасибо сказали:
Аватара пользователя
Zeus
Сообщения: 694

Re: pointer to object in C++(QT)

Сообщение Zeus »

folibis писал(а):
19.02.2006 07:48
:) Всё получилось. вот спасибо.
А я и не знал про такую возможность :huh:
Правда механизм не совсем понятен. ну буду разбираться ...

Механизм простой: операция разыменования указателя (*) - возвращает ОБЪЕКТ.
То, что функция требует ССЫЛКУ, значит, что ей и нужно передать объект или ссылку на него.
Указание ссылки в параметрах функции значит, что:
1. При вызове функции не будет создаваться новый объект, а будет использоваться существующий, в виде ссылки на него.
2. Функция может изменить состояние объекта (если, конечно, ссылка не константная) - это полезно помнить при анализе чьих-то библиотек. Короче, это такое соглашение между программистами. Причём, это же касается и указателей.
Спасибо сказали: