Прошу прощения за титул wierd, не стесняйтесь придумать лучший, если вы можете подумать об одном.QPointer, содержащий производный объект, не совпадает с базовым классом
Вот моя проблема.
У меня есть структура, которая выглядит примерно так:
QObject -> MyBase -> MyDerived
Я тогда функция, которая будет принимать любого из производных типов как QPointer;
void function(QPointer<MyBase> base) {
...
}
Вопрос теперь, что я не могу передать QPointer<MyDerived>
в эту функцию, которую я бы, если бы я использовал стандартные указатели. Должен ли я использовать этот объект, чтобы он соответствовал функции? Или я должен просто использовать обычные указатели?
Кроме того, знает ли кто-нибудь стандартное поведение при распределении объекта, который терпит неудачу? Если вы всегда делаете это в блоке try или блокируете его, чтобы проверить, является ли оно нулевым или нет? Я прочитал документацию Qt, и они сказали, что большинство их классов вернули нулевое значение, если не удалось выделить. Когда это утверждение истинно и что я могу сделать, если я не хочу использовать try-catch?
О, я пропустил эту часть! благодарю вас за это – chikuba
, но как я могу в функции защитить себя от указателей поворота/ – chikuba
, что функция не имеет указателя справа? кому-то это принадлежит, поэтому его не нужно удалять, я что-то упускаю? – Kunal