我想知道是否可以创建继承类的指针映射。这是我正在尝试做的事情的一个例子:
#include <string>
#include <map>
using namespace std;
class BaseClass
{
string s;
};
class Derived1 : public BaseClass
{
int i;
};
class Derived2 : public Derived1
{
float f;
};
// Here's what I was trying, but isn't working
template<class myClass>
map<string, myClass>m;
int main()
{
// Add BaseClasses, Derived1's, and/or Derived2's to m here
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我得到的错误是:
main.cpp(23):错误 C2133:“m”:未知大小 main.cpp(23): 错误 C2998: 'std::map<std::string,myClass>m' :不能是模板定义
我明白为什么会出现此错误,但我想知道是否可以创建一个可以保存不同级别的继承类的映射?如果没有,是否可以创建某种可以容纳各种类别类型的管理系统?或者我必须制作不同的地图/向量/数组/等。对于每种类型的课程?