gpt4 book ai didi

c++ - 如何通过实例方法使用 C++11 线程?

转载 作者:可可西里 更新时间:2023-11-01 18:17:14 35 4
gpt4 key购买 nike

<分区>

我有一个 Player 类,一些子类 Player1、Player2、Player3 使用 C++ 扩展了 Player。
Player 类有一个方法“run”,所有 Player1、2、3 都会覆盖“run”来做不同的事情。

class Player {
public:
virtual void run();
}
class Player1: public Player {
public:
void run();
}

在“main”函数中,我将创建 Player1、2、3 的一些实例
以及这些实例的一些 C++11 线程调用方法“运行”。

int main() {
Player1 player1;
Player2 player2;
Player3 player3;
Thread thread1(player1.run, this);
Thread thread2(player2.run, this);
Thread thread3(player3.run, this);
thread1.join();
thread2.join();
thread3.join();

return 0;
}

我试过了,我知道这行不通,
所以我尝试使用另一个函数来调用实例方法。

function doRun1(Player1 player){
player.run();
}

int main() {
Player1 player1;
Player2 player2;
Player3 player3;
Thread thread1(doRun1, player1);
Thread thread2(doRun2, player2);
Thread thread3(doRun3, player3);
thread1.join();
thread2.join();
thread3.join();

return 0;
}

这种方法似乎可以解决问题,但我必须创建 doRun1、doRun2、doRun3.... 很多功能,
因为需要声明doRun1,2,3的参数是Player1,2还是3

我想不出更好的解决方案,有人可以帮助我吗@@?

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com