gpt4 book ai didi

c++ - C++ 中的动态函数参数,可能吗?

转载 作者:搜寻专家 更新时间:2023-10-31 00:41:32 25 4
gpt4 key购买 nike

我是 C++ 的新手,我对变量参数传递有一个疑问。正如我在下面的示例代码中提到的(这段代码根本不起作用,只是为了让其他人理解我的问题,我是这样构造的),我有两个函数 func,带有 1 个参数和 2 个参数(参数重载)。我正在从 main 调用 func,在此之前我正在检查是否需要调用 2 个参数或 1 个参数。这就是问题所在,据我所知,我可以在各自的 if elseif 语句中调用两个函数,但我很想知道我是否可以只用一个函数来管理。 (在下面的代码中,我传递的是字符串而不是 int,正如我之前提到的,这只是为了其他人的理解目的。

#include<iostream.h>
#include <string>

void func(int, int);
void func(int);

void main()
{
int a, b,in;

cout << "Enter the 2 for 2 arg, 1 for 1 arg\n";
cin << in;

if ( in == 2)
{
string pass = "a,b";
}
elseif ( in == 1)
{
string pass = "a";
}
else
{
return 0;
}

func(pass);

cout<<"In main\n"<<endl;
}

void func(int iNum1)
{
cout<<"In func1 "<<iNum1<<endl;
}

void func(int iNum1, int iNum2)
{
cout<<"In func2 "<<iNum1<<" "<<iNum2<<endl;
}

最佳答案

您可以使用 Ronald 解释的 stdarg 方法。或者您可以使用带有参数 vector 的函数。首先将参数推送到 vector ,然后调用以下函数:

func(const vector<int>& argv) {
for (vector<int>::const_iterator iter = argv.begin(); iter != argv.end(); ++iter) {
// Get the arguments
}
// Do what you want ...
}

关于c++ - C++ 中的动态函数参数,可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13061565/

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