gpt4 book ai didi

c++ - 如何在C++中调用类的随机函数?

转载 作者:行者123 更新时间:2023-12-03 07:07:01 25 4
gpt4 key购买 nike

我正在尝试使用C++创建一个命令行游戏。我是新手,刚刚开始学习。
我的游戏包括一个玩家类和一个龙类。这些类在单独的头文件中声明。
我想知道的是,是否有一种方法可以在声明后调用类的随机函数。
喜欢

// ignore the includes
class foo{
public:
string name = "foo";
foo(string name){
this->name = name;
}

void func1(){
//some code
}

void func2(){
//some code
}

void func3(){
//some code
}
}


/////
//main.cpp
#include <iostream>
#include "foo.h"

int main(){
foo bar("hello");
//call a random function like func1, func2, func3;
return 0;
}

最佳答案

您可以使用给定的函数创建一个数组,并生成一个随机整数作为该数组的索引:

void invoke_random_function(foo& bar)
{
//make an array of pointers to desired functions
using func_type = void(foo::*)();
constexpr func_type funcs[] = {
&foo::func1,
&foo::func2,
&foo::func3
};

//select a random function from array
auto random_index = (std::rand() % std::size(funcs)); //use better RNG than std::rand if necessary
auto random_func = funcs[random_index];

//invoke the selected function with the given instance of the class
(bar.*random_func)(); //funny notation to invoke member function pointers
}

关于c++ - 如何在C++中调用类的随机函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65075590/

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