繁体   English   中英

C ++中的重载函数数组

[英]array of overloaded functions in c++

我在C ++中有几个重载函数,我想对它们进行数组处理,以便可以在循环中使用它们(实际上,我想随机调用它们)。 你能帮忙吗 ? 教程仅显示如何使用具有相同功能参数的功能指针数组。

我认为这里的主要问题是,似乎您想要的是在执行时而不是在编译时确定函数参数的类型和顺序。 您的主要目标是什么? 执行速度? 代码的可读性或“正确性”? 如果您追求执行速度,那么我认为有一些丑陋的解决方案。 据我了解您的问题,您将使用随机选择的数组索引来决定要调用的“重载函数”。 因此,一种不一定安全的可能性是使用仿函数并将其传递给数组中每个仿函数的创建者,这些指针指向将来将使用的变量,就像这些变量是其变量一样。 但这仅在您始终使用与“函数”调用的参数相同的变量的情况下才有效。

等待,以便您要随机调用一组重载函数吗?

为什么不只是创建一个快速的rand函数,然后使用switch语句呢?

例如,假设您有3个重载函数:

srand(time(0));
int rand = rand() % 3 // Replace 3 with number of functions.

switch(rand)
{
   case 0:
      test("this is a string!");
      break;
   case 1:
      test(12, 16);
      break;
   case 2:
      test(16.2, 3, "Hello, World!");
      break;
}

否则,由于数组中的每个函数都不同并且期望使用不同的参数,您很可能会遇到麻烦。 您将需要某种方法来确定哪些参数只能通过函数的地址来执行,而哪些函数不能执行。

我要说的是,除非您使用与上述方法类似的方法,否则很难完成您要执行的操作,即使那样,您仍然需要从某个地方获取参数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM