Why not have a design like this -
Qt Code:
  1. class AbstracBasetClass
  2. {
  3. public:
  4. int number;
  5. };
  6.  
  7. class ClassA : public AbstracBasetClass
  8. {
  9. public:
  10. };
  11.  
  12. class ClassB : public AbstracBasetClass
  13. {
  14. public:
  15. };
  16.  
  17. class ClassC: public AbstracBasetClass
  18. {
  19. public:
  20. };
To copy to clipboard, switch view to plain text mode 
and then simply call foo->number = value;

or you could also do something like -
Qt Code:
  1. class AbstracBasetClass
  2. {
  3. public:
  4. virtual void setNumber(int number) {} // empty implementation in base class
  5. };
  6.  
  7. class ClassA : public AbstracBasetClass
  8. {
  9. public:
  10. int numA;
  11. void setNumber(int number) {numA = number; }
  12. };
  13.  
  14. class ClassB : public AbstracBasetClass
  15. {
  16. public:
  17. int numB;
  18. void setNumber(int number) {numB = number; }
  19. };
  20.  
  21. class ClassC: public AbstracBasetClass
  22. {
  23. public:
  24. int numC;
  25. void setNumber(int number) {numC = number; }
  26. };
To copy to clipboard, switch view to plain text mode 

then from your code you can call foo->setNumber(1);, etc depending on your if condition.

Hope some way fits you