我正在尝试使用以下代码初始化标题中的地图,但它一直给我标题中的错误.我正在使用C++ 11,所以这应该是可能的,对吧?
typedef std::map<NPCAnimation::ID, std::map<Direction::ID, sf::Time>> AnimationSpeedMap;
AnimationSpeedMap AnimationSpeeds = {
{NPCAnimation::WALK, {
{Direction::LEFT, sf::milliseconds(100)},
{Direction::RIGHT, sf::milliseconds(100)},
{Direction::UP, sf::milliseconds(200)},
{Direction::DOWN, sf::milliseconds(200)}
}
},
{NPCAnimation::IDLE, {
{Direction::LEFT, sf::milliseconds(600)},
{Direction::RIGHT, sf::milliseconds(600)},
{Direction::UP, sf::milliseconds(600)},
{Direction::DOWN, sf::milliseconds(600)}
}
},
{NPCAnimation::SPECIAL, {
{Direction::LEFT, sf::milliseconds(500)},
{Direction::RIGHT, sf::milliseconds(500)},
{Direction::UP, sf::milliseconds(500)},
{Direction::DOWN, sf::milliseconds(500)}
}
},
};
Run Code Online (Sandbox Code Playgroud)
提前致谢!~grambler1
我有一个从A公开继承的B级:
class A {
private:
virtual void method();
}
class B : public A {
private:
void method();
}
Run Code Online (Sandbox Code Playgroud)
现在,我需要以某种方式调用原来的A::method()内B::method(),而无需调用为A的拷贝构造函数
在图书馆,我想扩展定义A,所以我不能改变这个代码(使法保护的例子).是否有可能以某种方式将thisptr 投射B::method()到被覆盖的内部并切掉method?
我正在使用一个调用的外部接口A::method().这个接口正确调用我的重写B::method(),但我似乎无法使接口调用内部B::method()不生成堆栈溢出.