如何创建指向函数C ++的指针的线程

若奥·卢扎达(Joao Louzada)

我知道,为了在对象上创建方法的线程,我可以通过以下方式做到这一点:

#include <thread> 
using namespace std;

class Character
{
public:
    void myFunction(int a){ /* */ }

    void startThreadMyFunction(int a){
      thread Mf1(&Character::myFunction, this, a);
    }
};

我也知道,为了在我的类中有一个指向函数的指针,我可以这样来做:

#include <thread>  
using namespace std;

class Character
{
private:
    void (*FMoveForward)(int);// Pointer to a function.
public:
    void setCommands(void(mf)(int delay)){//This function sets the pointer.
      FMoveForward = mf;
    }
    void MoveForward(int delay){
      FMoveForward(delay);// Here a call my function with my pointer to function.
    }
};

我的问题是,当我尝试同时使用这两种功能时,Visual Studio 13编译器始终会抱怨sintaxe。

#include <iostream>
using namespace std;

class Character
{
private:
    void (*FMoveForward)(int);
public:
    void setCommands(void(mf)(int delay)){
      FMoveForward = mf;
    }
    void MoveForward(int delay){
      thread Mf1(&Character::FMoveForward , this, delay);// The VS 13 Complain because the sintaxe os this line.
    }

};

有人知道如何解决吗?TY进阶...

杂项

问题在于指向成员函数的指针不是指向自由函数的指针std::thread可以同时使用两者,但是您需要保持一致。

在第一个示例中,您有一个指向成员函数的指针。好的。

在第二个示例中,您有一个指向自由函数的指针。还行。

在您的第三个示例中,FMoveForward是指向自由函数的指针。&Character::FMoveForward是指向指针的指针。那是行不通的。

如果要存储&Character::myFunction,则需要一个void (Character::*FMoveForward)(int);成员。那是一个指向成员函数的指针

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何创建指向函数C ++的指针的线程

来自分类Dev

如何在C#中创建“指向函数指针的typedef”?

来自分类Dev

如何创建指向函数指针的指针?

来自分类Dev

C ++,线程和指针

来自分类Dev

从C ++线程调用指针

来自分类Dev

线程中的成员函数指针

来自分类Dev

如何创建指向结构的指针数组?C ++

来自分类Dev

如何获得指向C函数的指针?

来自分类Dev

C ++如何使函数指针指向类方法

来自分类Dev

创建指向类的指针的函数

来自分类Dev

将指向成员函数的指针传递给单独的线程

来自分类Dev

如何创建将保存指向函数的指针的队列?

来自分类Dev

C ++:使用int指针指向在函数内部创建的向量

来自分类Dev

如何创建指向2D指针数组的指针-C

来自分类Dev

Boost函数指针多线程之谜

来自分类Dev

如何创建指向UITableView的指针?

来自分类Dev

指向C ++中函数的指针

来自分类Dev

指向指针的c ++指针和接收指向指针的调用函数

来自分类Dev

如何加快在C ++中返回指向对象的指针的函数?

来自分类Dev

C ++如何获取指向lambda函数的void指针?

来自分类Dev

C ++:如何返回指向非静态成员函数的指针?

来自分类Dev

指向C ++中的函数指针的指针

来自分类Dev

如何检索在单独线程上运行的函数的移动指针?

来自分类Dev

指向C中内置函数的函数指针

来自分类Dev

C:指向返回枚举的函数的函数指针

来自分类Dev

指向成员函数的C ++指针出错:不是函数或函数指针

来自分类Dev

如何读取指向C ++的指针?

来自分类Dev

指向对象初始化线程安全的静态指针

来自分类Dev

Typedef指向C ++中C函数的指针