![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
maxvanceffer |
![]()
Сообщение
#1
|
![]() Студент ![]() Группа: Участник Сообщений: 72 Регистрация: 30.5.2009 Из: Moldova Пользователь №: 790 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вообщем странный вобще задвиг у компилятара..
есть класс : Currency(); explicit Currency( const int& id, const QString &name, const QString& code ); explicit Currency( const Currency& other ); virtual ~Currency(); private: QSharedDataPointer<CurrencyData> d; написана прям по классике из доков Qt, и где в другом классе пытаюсь вернуть его и не может Currency Someclass::exchangeRate() { some code ... return Currency(); } выдаёт ошибку : error: no matching function for call to 'Currency::Currency(Currency)' почему компилятор передаёт параметр в конструктор обтекта ? |
|
|
![]() |
Iron Bug |
![]()
Сообщение
#2
|
![]() Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: ![]() ![]() ![]() |
скорее всего, проблема у вас вообще в указателе. обычно, shared указатели требуют, чтобы объект был с обычным конструктором копии (это действительно так для QSharedDataPointer, я ради интереса в гугле глянула). а в данном случае его просто нет (а сходный метод используется только с явным вызовом конструктора со ссылкой - из-за explicit) и компилятор ругается.
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 27.2.2025, 4:55 |