首先,我定义了两个相互继承的类.
class A {
};
class B : public A {
};
Run Code Online (Sandbox Code Playgroud)
然后,我声明一个使用以下函数的函数std::function<void(A*)>:
void useCallback(std::function<void(A*)> myCallback);
最后,我std::function从我想要在回调函数中使用的其他地方收到一个不同的(但理论上兼容的)类型:
std::function<void(B*)> thisIsAGivenFunction;
useCallback(thisIsAGivenFunction);
Run Code Online (Sandbox Code Playgroud)
我的编译器(clang ++)拒绝这个,因为它的类型thisIsAGivenFunction与期望的类型不匹配.但是B继承自己A,接受它是有道理的thisIsAGivenFunction.
应该是吗?如果没有,为什么?如果它应该,那么我做错了什么?
我正在为一个非常受欢迎的游戏的新版本编写后端.(500万+玩家,每月超过5000万游戏).
SQL是一个很好的选择作为存储系统来保存玩家的个人资料和他们的游戏吗?也就是说,我害怕加入这样大桌子的表现.
这是我们想要做的: