c++ - How to cast QTableWidgetItem to custom child class -
i'm trying cast qtablewidgetitem
child class. have class hierarchy this:
(parent -> child) qtablewidgetitem -> sortabletablewidgetitem -> enhancedtablewidgetitem
or
class sortabletablewidgetitem : public qtablewidgetitem
class enhancedtablewidgetitem : public sortabletablewidgetitem
for part, use items qtablewidgetitem
s because code written , shouldn't change. in instances need access data in enhancedtablewidgetitem
after being given pointer qtablewidgetitem
(which know enhancedtablewidgetitem
because constructed object , passed calling code initially). have tried casting this:
qtablewidgetitem item = getitem(); // fails compile saying "error: no matching function call ‘qobject_cast(qtablewidgetitem*)’" enhancedtablewidgetitem *eitem = qobject_cast<enhancedtablewidgetitem*>( item ); // fails compile , says: "error: invalid conversion ‘qtablewidgetitem*’ ‘enhancedtablewidgetitem*’" enhancedtablewidgetitem *eitem = dynamic_cast<enhancedtablewidgetitem*>( item );
i come java world legal , done time. why can't cast base class pointer child class pointer? how can accomplish this?
qobject_cast
class inherit qobject
. if item
of custom type use dynamic cast
enhancedtablewidgetitem* eitem = dynamic_cast<enhancedtablewidgetitem*>( item );
nevermind. you casting object pointer. not work. still, said still apply
Comments
Post a Comment