在C++程序中随机调用函数

msd*_*d_2 3 c++

我有这样一个C++程序

#include<iostream>

string A();
string B();
string C();

int main()
{
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

我想通过使用三个函数A(),B()和C()来测试应用程序,这样我就可以从main()中随机调用它们,这样我就可以测试应用程序了.我不知道是否存在任何条款或任何调整,这将允许我随机调用任何顺序的函数.

在C++中是否可以随机调用函数,如果是,那么最好的方法是什么?

pip*_*289 9

如何使用for循环选择随机数来控制调用哪个测试.

for(size_t i = 0; i<NUM_Of_TESTS; ++i) {
  switch(rand() % 3) {
    case 0: A(); break;
    case 1: B(); break;
    case 2: C(); break;
  }
}
Run Code Online (Sandbox Code Playgroud)

像这样的switch语句将允许不同的函数签名.

  • 这是一个非常简单的想法..天哪,为什么我不能考虑它?无论如何,谢谢,我会用它。 (2认同)
  • NUM_OF_TESTS应该是您要运行的测试数,而不是您要测试的函数数.A(),B(),C()可能有不同的输入变量,也可能是随机的. (2认同)

Mar*_*som 5

如果函数都具有相同的签名,则可以创建一个函数指针数组.

typedef string (*func_ptr)();

func_ptr funcs[3] = { A, B, C };

cout << funcs[rand() % 3]() << endl;
Run Code Online (Sandbox Code Playgroud)