(c++)如何制作一个可以处理不同类型和数量参数的函数

(c++) How to make a function which can handle different type and number of parameters?

本文关键字:同类型 参数 函数 何制作 c++ 一个 处理      更新时间:2023-10-16

例如,我正在处理一个gotoIJ函数,它将指针设置在所需的坐标上。我想要两种方式来传递论点:

  • 2个int值:gotoIJ(int i, int j)
  • 存储坐标的结构体:gotoIJ(coordinate element)

如何用C++编写?谢谢

实现两个功能:

struct Coordinate {
    int i;
    int j;
};
void gotoIJ(int i, int j) {
   // do stuff
}
void gotoIJ(const Coordinate& c) {
    gotoIJ(c.i, c.j);
}

现在客户可以拨打:

gotoIJ(13, 42);

或:

Coordinate c1 {4, 2};
gotoIJ(c1);

有关详细信息,请参阅函数重载。

函数的名称并不是将函数本身与其他函数区分开来的唯一因素。当您创建(或者更好的是声明)一个函数时,您会告诉编译器3个重要且不同的点:

  • 返回类型
  • 函数的名称
  • 传递给函数的参数

在您的情况下,您希望使用相同的函数名称,但使用不同的参数。你可以毫无问题地完成这项工作,并按照你在问题中所写的那样创建这两个函数。

void gotoIJ(int i, int j){
...
}
void gotoIJ(coordinate element){
...
}

我想你不会从这些函数中返回任何东西,因此我将返回类型设置为void。因此,当您在main或其他任何地方调用函数gotoIJ时,编译器将根据您传递的参数自动调用正确的函数。