我尝试使队列可以接收指向函数的指针-我找不到如何做的方法
这是我的代码
$(document).ready(function() {
$(document).on('click', 'a[data-role=update]', function() {
var id = $(this).data('id');
var isim2 = $('#' + id).children('td[data-target=isim2]').text();
var haksayisi = $('#' + id).children('td[data-target=haksayisi]').text();
var aciklama2 = $('#' + id).children('td[data-target=aciklama2]').text();
$('#isim2').val(isim2);
$('#haksayisi').val(haksayisi);
$('#aciklama2').val(aciklama2);
$('#id').val(id);
$('#myModal').modal('toggle');
});
$('#save').click(function() {
var id = $('#id').val();
var isim = $('#isim2').val();
var haksayisi = $('#haksayisi').val();
var aciklama2 = $('#aciklama2').val();
$.ajax({
url: 'connect.php',
method: 'POST',
data: {
'isim2': isim,
'haksayisi': haksayisi,
'aciklama2': aciklama,
'id': id
},
success: function(response) {
console.log(response);
}
});
});
});
答案 0 :(得分:4)
非静态成员函数需要调用一个对象。通过使用普通的myMathElement->Print_1
,您将不提供任何对象,而只是提供指向成员函数的指针。
使用std::bind
来提供对象作为函数的第一个参数:
t1.func = std::bind(&MyMath::Print_1, myMathElement);
t1.func = [myMathElement]() { myMathElement->Print_1(); };
对于您的错误,您可能是由于Queue
类中的某个问题(您没有向我们展示)而得到的,但是更可能的原因并非来自push
呼叫,而是从分配给func
成员的呼叫。
您应该从作业中获取它们,因为它们不是有效的作业。您不能使用这样的成员函数,必须使用地址运算符&
并使用 class (或结构)而不是对象进行完全作用域。如上面的std::bind
调用所示,您必须使用&MyMath::Print_1
。