I have two classes of the form:
Qt Code:
  1. class DNumber
  2. {
  3. static int Digits;
  4. virtual DNumber* add(const DNumber* a, unsigned digits) const = 0;
  5. DNumber* add(const DNumber* a) const {return add(a, Digits);}
  6. }
  7.  
  8. class DInteger : public DNumber
  9. {
  10. // implementation uses runtime type checking to perform addition
  11. DInteger(int value);
  12. DNumber* add(const DNumber* a, unsigned digits) const;
  13. }
To copy to clipboard, switch view to plain text mode 
Attempting to use this:
Qt Code:
  1. DInteger* cien = new DInteger(100);
  2. DInteger* dos = cien->add(cien);
  3. qDebug() << dos->toString();
  4.  
  5. delete cien, delete dos;
To copy to clipboard, switch view to plain text mode 

Results in a compile error:

error: no matching function for call to 'DInteger::add(DInteger*&)'

DInteger should inherit add(DNumber*) right?