【发布时间】:2012-07-25 02:20:03
【问题描述】:
我有一段时间没有写 C++,所以我有点生疏了。如果我有这样的课程:
class JsonType{
protected:
map<string, JsonType>* objects;
}
还有一个继承自它的类:
class JsonObject : public JsonType{
public:
JsonObject(){
this->objects = new map<string, JsonObject>();
}
}
为什么会出现编译器错误cannot convert...JsonObject...to...JsonType?这不应该是合法的,因为 JsonObject 是 JsonType 吗?
【问题讨论】:
-
将
A转换为B与将X<A>转换为X<B>非常不同。
标签: c++ templates inheritance polymorphism