Почему я не могу использовать умный указатель для создания нового класса QLineEdit

Как видно из заголовка, я хочу использовать некоторый буфер для класса QLineEdit с помощью интеллектуального указателя, но компилятор показывает «недопустимое применение 'sizeof' к неполному типу 'QLineEdit'». Я нашел файл «aligned_buffer.h», создав сообщение. но это беспомощно. Что меня смущает, так это то, что когда я использую тот же способ использования некоторого буфера для QTextEdit, компилятор работает успешно. почему QLineEdit не может использовать тот же способ сделать это?

...
shared_ptr<QTextEdit> t1 = make_shared<QTextEdit>(); // successd
shared_ptr<QLineEdit> t2 = make_shared<QLineEdit>(); // failed
...

Может быть, вы забыли включить заголовок QLineEdit?

vahancho 22.05.2019 16:19
...to incomplete type 'QLineEdit' — явное указание на то, что компилятор не имеет ни малейшего представления о том, что такое QLineEdit во время компиляции этой строки исходного кода. Итак.. выяснить, почему. Отсутствует заголовок? Условно исключено препроцессором? Причин может быть сколько угодно, о которых мы могли только догадываться.
WhozCraig 22.05.2019 16:40
3 метода стилизации элементов HTML
3 метода стилизации элементов HTML
Когда дело доходит до применения какого-либо стиля к нашему HTML, существует три подхода: встроенный, внутренний и внешний. Предпочтительным обычно...
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
0
2
66
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Включите заголовочные файлы правильно

#include <QTextEdit> // https://doc.qt.io/qt-5/qlineedit.html
#include <QLineEdit> // https://doc.qt.io/qt-5/qtextedit.html
#include <memory>     //https://en.cppreference.com/w/cpp/memory/shared_ptr/make_shared

int main(){
   shared_ptr<QTextEdit> t1 = std::make_shared<QTextEdit>(); 
   shared_ptr<QLineEdit> t2 = std::make_shared<QLineEdit>(); 
}

Другие вопросы по теме