I've decided to go the mr. wizard route...
Here's another small related problem:
Code:
class Factor {
pointer* handle;
}
class Numeral {} : public Factor {};
class Numeral_Base : virtual public Numeral {};
class Float : virtual public Numeral{};
class Float_Base : public Float, public Numeral_Base {};
class Infinity_Base : public Numeral_Base {};
Here's my class layout. My Factor constructor looks like this:
Code:
Factor::Factor(const bool r = true) {
if (r)
pointer = new Blah;
else
pointer = NULL;
}
The reason for having the class Numeral_Base is to provide default behavior for its derived classes. ie:
Code:
Numeral_Base::Numeral_Base() : Numeral(false) { //... }
Numeral::Numeral(const bool r = true) : Factor(r) {}
A Numeral object would cause the pointer to be a new Blah, a Numeral_Base (or derived) object would cause it to be NULL.
My problem is in Float_Base. How do I ask for Numeral_Base's behavior over Float's behavior?