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 qtablewidgetitems 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

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -