C++ Field holding objects with different template arguments -
i have following setup:
// n number of rooms template <size_t n> class house { void printnumberofrooms(); } house<1> house1; house<2> house2;
now want have field can hold both house1 , house2 , on can call house.printnumberofrooms().
house house; house.printnumberofrooms();
gave me "requires template argument" error (obviously).
what best way achieve goal?
house<1>
, house<2>
different , incompatible types, therefore can't store them in single field.
however can give them same parent class , store them pointer parent class , make printnumberofrooms
virtual. this:
class basehouse{ virtual void printnumberofrooms(); }; template<size_t n> class house: public basehouse{ virtual void printnumberofrooms(); }; class c{ basehouse * house; };
Comments
Post a Comment