Я какое-то время возился с Qt и C++, но столкнулся с этой ошибкой и не могу понять, почему она возникает. Есть много других вопросов, на которые были даны ответы с сообщением об ошибке преобразования const void*, но я не вижу, как объяснения помогают в моем случае, поэтому вот:
У меня есть повторная реализация MyTypeManager QList‹ MyType *const>, поэтому список константных указателей на неконстантные MyTypes. Однако, когда вызывается функция в моей повторной реализации, addMyType
void MyTypeManager::addMyType(MyType *const var)
{
this->append(var);
}
возникают следующие ошибки:
In file included from /usr/include/qt4/QtCore/QList:1:0,
from ../qtsdlthread/mytypemanager.h:4,
from ../qtsdlthread/mytypemanager.cpp:1:
/usr/include/qt4/QtCore/qlist.h: In member function ‘void QList<T>::node_construct(QList<T>::Node*, const T&) [with T = MyType* const]’:
/usr/include/qt4/QtCore/qlist.h:499:13: instantiated from ‘void QList<T>::append(const T&) [with T = MyType* const]’
../qtsdlthread/mytypemanager.cpp:20:26: instantiated from here
/usr/include/qt4/QtCore/qlist.h:359:58: error: invalid conversion from ‘const void*’ to ‘void*’
/usr/include/qt4/QtCore/qlist.h: In member function ‘void QList<T>::node_copy(QList<T>::Node*, QList<T>::Node*, QList<T>::Node*) [with T = MyType* const]’:
/usr/include/qt4/QtCore/qlist.h:666:9: instantiated from ‘QList<T>::Node* QList<T>::detach_helper_grow(int, int) [with T = MyType* const]’
/usr/include/qt4/QtCore/qlist.h:497:48: instantiated from ‘void QList<T>::append(const T&) [with T = MyType* const]’
../qtsdlthread/mytypemanager.cpp:20:26: instantiated from here
/usr/include/qt4/QtCore/qlist.h:386:17: error: invalid conversion from ‘const void*’ to ‘void*’
20:26 в mytypemanager — это строка this->append, опубликованная выше.
MyType const *
вместоMyType * const
.QtList<MyType const *>
должно работать. - person Emile Cormier   schedule 02.09.2011