考虑一下:
void l(Event const& e)
{
KeyEvent& k = (KeyEvent&)e;
std::cout<<k.action<<" "<<k.keyCode;
}
void k(Event const& e)
{
KeyEvent& k = (KeyEvent&)e;
std::cout<<k.action<<" "<<k.keyCode;
}
void t(Event const& e)
{
l(e);
k(e);
}
int main(int argc, char* argv[])
{
t(KeyEvent(1,1));
}
KeyEvent 对象何时从内存中释放(是在作用域结束之后还是我必须删除它)?如果该 KeyEvent 实际上传递的比这更多,我可以确定它会一直有效,直到使用它的最后一个函数结束吗?