C++ C++;包含具有不同模板参数的对象的字段
我有以下设置:C++ C++;包含具有不同模板参数的对象的字段,c++,templates,C++,Templates,我有以下设置: // N is the number of rooms template <size_t N> class House { void printNumberOfRooms(); } House<1> house1; House<2> house2; 给了我一个“requires template argument”错误(显然) 实现我的目标的最佳方法是什么?House和House是完全不同且不兼容的类型,因此不能将它们存储在单个字
// N is the number of rooms
template <size_t N>
class House {
void printNumberOfRooms();
}
House<1> house1;
House<2> house2;
给了我一个“requires template argument”错误(显然)
实现我的目标的最佳方法是什么?House
和House
是完全不同且不兼容的类型,因此不能将它们存储在单个字段中
但是,您可以为它们提供相同的父类,并将它们存储为指向该父类的指针,并使printNumberOfRooms
虚拟。像这样:
class BaseHouse{
virtual void printNumberOfRooms();
};
template<size_t N>
class House: public BaseHouse{
virtual void printNumberOfRooms();
};
class C{
BaseHouse * house;
};
class基地{
虚拟void printNumberOfRooms();
};
模板
班级宿舍:公共基地{
虚拟void printNumberOfRooms();
};
C类{
基地*大楼;
};
您没有给我们提供足够的信息来决定什么是最好的。除非你能明确说明你想在这个领域做什么,否则你只是要求别人给你写一篇文章。我想在house1或house2上打印NumberOfRooms()。可能是
class BaseHouse{
virtual void printNumberOfRooms();
};
template<size_t N>
class House: public BaseHouse{
virtual void printNumberOfRooms();
};
class C{
BaseHouse * house;
};