QT lambda表达式中引用传递和值传递
引用传递
int a = 100;
QPushButton *button = new QPushButton( this );
button->setText( "点我" );
connect( button, &QPushButton::clicked, this, [&]() {
a += 2;
qDebug() << a;
} );
qDebug() << a;
值传递
int a = 100;
QPushButton *button = new QPushButton( this );
button->setText( "点我" );
connect( button, &QPushButton::clicked, this, [=]() {
a += 2; //这里会报错
qDebug() << a;
} );
qDebug() << a;
总结,&引用传递可以修改a的值,=值传递不能修改。
详细连接mutable的用法