Ошибка вида "no matching ... ClassName*&" |
Здравствуйте, гость ( Вход | Регистрация )
Ошибка вида "no matching ... ClassName*&" |
Litkevich Yuriy |
16.1.2010, 17:20
Сообщение
#1
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Есть такой код:
на второй строчке получаю ошибку:Цитата error: no matching function for call to `QSvgRenderer::QSvgRenderer(QString&, QGraphicsScene*&)' немогу понять почему компиллер пишет, то что я выделил жирным. Ведь я передаю указатель. А QGraphicsScene является наследником QObject..../svg/qsvgrenderer.h:60: note: candidates are: QSvgRenderer::QSvgRenderer(const QSvgRenderer&) .../src/svg/qsvgrenderer.h:69: note: QSvgRenderer::QSvgRenderer(const QByteArray&, QObject*) .../src/svg/qsvgrenderer.h:68: note: QSvgRenderer::QSvgRenderer(const QString&, QObject*) .../src/svg/qsvgrenderer.h:67: note: QSvgRenderer::QSvgRenderer(QObject*) Т.е. поидее должен вызываться конструктор: QSvgRenderer::QSvgRenderer(const QString&, QObject*) В чём проблема? |
|
|
kwisp |
25.1.2010, 18:22
Сообщение
#2
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
а
#include<QGraphicsScene> присутствует? еще может не может без const различить эти два констуктора ? QSvgRenderer(const QString &filename, QObject *parent=0); QSvgRenderer(const QByteArray &contents, QObject *parent=0); |
|
|
Litkevich Yuriy |
26.1.2010, 6:58
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
kwisp |
26.1.2010, 13:11
Сообщение
#4
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
значит остаётся только это:
еще может не может без const различить эти два констуктора ? QSvgRenderer(const QString &filename, QObject *parent=0); QSvgRenderer(const QByteArray &contents, QObject *parent=0); попробуй
так кстати и троли рекомендуют делать, да и имя файла ты в setOnSVG не меняешь так что const QString& в самый раз. |
|
|
Litkevich Yuriy |
26.1.2010, 14:01
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
сейчас уже не поробую переделал иначе. Ошибка эта вылезла после добавления сцены в качестве аргумента, сначала было просто:
и всё компилелосьне может без const различить эти два констуктора ? а const'ом он как отличит?
QSvgRenderer(const QString &filename, QObject *parent=0); QSvgRenderer(const QByteArray &contents, QObject *parent=0); |
|
|
kwisp |
26.1.2010, 15:15
Сообщение
#6
|
астарожна ынтжинэр Группа: Участник Сообщений: 1404 Регистрация: 26.11.2008 Из: ТаганрогРодинаЧехова Пользователь №: 435 Спасибо сказали: 113 раз(а) Репутация: 23 |
а const'ом он как отличит? не вдаваясь в подробности, конструктры QString & QByteArray не заданы explicit. можно предположить что первый парметр компилятор желает преобразовать и не знает к чему к const QString& (хотя по-идее это случай неяного преобразования и должен работать) или к const QByteArray&. Если укажешь const по-идее преобразовывать нельзя и он оставит параметр в неизменном виде. соответственно подойдёт конструктор QSvgRenderer(const QString &filename, QObject *parent=0) попробуй, может и получится. П.С. по крайней мере явно узнаешь проблема в первом или во втором параметре. QGraphicsScene унаследован от QObject public`ом c макросом Q_OBJECT не видно на первый взгляд причин для проблем с преобразованием. Сообщение отредактировал kwisp - 26.1.2010, 15:18 |
|
|
Текстовая версия | Сейчас: 22.12.2024, 19:04 |