2011-12-10 3 views
1

У меня есть это:QMovie является частным

QMovie Tests::QMovieReturn() { 
    QMovie ReturnMovie; 
    ReturnMovie->setFileName("Test.gif"); 
    return ReturnMovie; 
} 

Но он говорит: 'QMovie :: QMovie (Const QMovie &)' является частным в этом контексте. (Линия, которая отправляет меня на возврат ReturnMovie)

Если у вас есть возврат, все работает нормально. Любое обходное решение для этого?

ответ

2

Таким образом, компилятор говорит, что конструктор копирования является закрытым. Это означает, что разработчики Qt не хотели, чтобы вы его использовали. Обходной путь, или, лучше сказать, правильное использование QMovie - это создать его в куче.

QMovie* ReturnMovie = new QMovie; 
+0

Если это единственный способ, так как я не могу вернуться, нет другого класса, который позволил бы мне вернуть Анимированный GIF? – Kazuma

+1

@ Kazuma Вы можете отлично вернуть 'QMovie *'. – Beginner

+0

QMovie MyFunction :: TestFunction() { QMovie * MyMovie = new QMovie; возвращение MyMovie; } Я сделал это (если вы имеете в виду это). Все еще получаю изоляцию. :/ – Kazuma

1

Вы, вероятно, должны использовать new для динамического распределения своего QMovie и возврата указателя, так как QMovie s явно не хотят копироваться.

Смежные вопросы