Есть функция которая требует референс на объект
void func(QPixmap & pixmap)
А у меня есть только указатель QPixmap * pixmap
как же мне его туда передать?
pointer to object in C++(QT)
Модератор: Модераторы разделов
-
Asgard
- Сообщения: 215
- Статус: North Valfader
Re: pointer to object in C++(QT)
не понял вопроса.
просто взять и передать: func(pixmap)
просто взять и передать: func(pixmap)
-
folibis
- Сообщения: 92
- ОС: Arch-ик
Re: pointer to object in C++(QT)
Ну... У меня есть только поинтер на обьект, а передать нужно сам обьект, а вернее референс.
две большие разницы
func(QPixmap * pix) и func(QPixmap & pix)
עת לכל חפץ
-
Zeus
- Сообщения: 694
Re: pointer to object in C++(QT)
Ну попробуй разыменовать указатель и передать то что получится:
func (*pix);
func (*pix);
-
n1tr0gen
- Сообщения: 149
-
folibis
- Сообщения: 92
- ОС: Arch-ик
Re: pointer to object in C++(QT)
А я и не знал про такую возможность
Правда механизм не совсем понятен. ну буду разбираться ...
עת לכל חפץ
-
Zeus
- Сообщения: 694
Re: pointer to object in C++(QT)
Механизм простой: операция разыменования указателя (*) - возвращает ОБЪЕКТ.
То, что функция требует ССЫЛКУ, значит, что ей и нужно передать объект или ссылку на него.
Указание ссылки в параметрах функции значит, что:
1. При вызове функции не будет создаваться новый объект, а будет использоваться существующий, в виде ссылки на него.
2. Функция может изменить состояние объекта (если, конечно, ссылка не константная) - это полезно помнить при анализе чьих-то библиотек. Короче, это такое соглашение между программистами. Причём, это же касается и указателей.