代码在这里
void A::fun()
{
QAction* act = new QAction(this);
QAction* act2 = new QAction(this);
connect(act, QAction::triggered, [this, &act2]() {...; act2.setDisable(true);}
// crash when &act2 is used to capture the variable
// but it is okay using act2 to capture the variable
}
是什么原因?感谢。
答案 0 :(得分:3)
您正在使用act2
的引用,即使它是一个超出范围的指针,这就是复制指针的原因。