segmentation fault because of this
Yes, this is correct behaviour according to the implementation

Try to imagine what happens when you call
Qt Code:
  1. item(2,2);
To copy to clipboard, switch view to plain text mode 
...
( small hint: item(2,2) => { return item(2,2) => { return item(2,2) => ... } } )
Calling the same method with the same arguments over and over...

What you want to do is to call base class implementation of "item" from your class "item" method and convert the result to your datatype. So there are two more questions:
1) how to call base class implementation from derived class method ?
2) how to convert from base class pointer to derived class pointer at runtime ?

Can't help you more with this, because next step is to write ~30 more characters in your "item" implementation Believe me, you'll learn much more by doing this yourself ( there is great, free C++ book available online called "Thinking in C++" )