Как void QTableWidget :: setItemPrototype (const QTableWidgetItem * item) клонирует объекты? - PullRequest
1 голос
/ 15 марта 2010

QTableWidget :: setItemPrototype сообщает следующее.

"Виджет таблицы будет использовать функцию клона прототипа элемента, когда ему необходимо создать новый элемент таблицы. Например, когда пользователь редактирует в пустой ячейке. Это полезно, когда у вас есть подкласс QTableWidgetItem и вы хотите убедиться, что этот QTableWidget создает экземпляры вашего подкласса. "

Как это на самом деле работает, когда вы можете передать любой указатель подкласса QTableWidgetItem в setItemPrototype, и во время выполнения нет способа получить размер объекта, имеющего только указатель на него?

1 Ответ

4 голосов
/ 15 марта 2010

QTableWidgetItem::clone() является функцией-членом virtual и должна быть переопределена подклассами QTableWidget.
Таким образом, когда вызывается clone(), вызывается реализация clone() в подклассе, а в подклассе, конечно, известен правильный тип.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...