如何在c++中传递可选参数给方法
How to pass optional parameter to a method in C++?
如何在c++中传递可选参数给方法?
是否有一种方式,就像在c#中,我们可以使用这个语句Func(identifier:value),它允许我传递值给任何我想要的参数....例如:
//C# Code
void func(int a=4,int b,int c)
{
int sum=a+b+c;
Console.Write(sum);
}
void Main(){ func(b:5,c:6);}
在c++中,默认参数必须放在最后,所以你可以这样写:
void func(int b, int c, int a=4)
{
int sum = a+b+c;
std::cout << sum;
}
int main() {
func(5, 6); // b = 5, c = 6, a uses the default of 4
}
您不能像在c#或Python中那样在所有调用站点提供命名参数。有一个boost库来支持命名参数,但我从未使用过它。
是的,但是,简短的回答是,具有默认值的参数不能放在没有默认值的参数前面。所以:
void func(int a=4,int b,int c) {} //doesn't work
void func(int b, int c, int a = 4){} //works
更多信息请参见http://en.cppreference.com/w/cpp/language/default_arguments
可以,但是您只能对最右边的元素这样做。所以你可以写void func(int a, int b, int c=4)
或void func(int a, int b=2, int c=4)
甚至void func(int a=1, int b=2, int c=4)
,但不是你给的例子
相关文章:
- 使用在用于SFINAE的void_t中具有参数的方法
- 如何制作一个将函数作为参数的类方法
- c++方法参数只能在linux的发布模式下自行更改
- 使用用户定义的参数调用future/async并调用类方法
- 将成员函数指针作为参数传递给模板方法
- 在 cpp 文件中隐藏采用模板参数引用的方法
- 使用模板参数重载C++方法:如何使其适用于模板的子类?
- 具有字符串化的可变参数宏的现代/通用方法
- 在 C++ 中将非指定类型作为参数传递的最佳方法?
- 如何在方法中传递结构参数
- 如何将类成员方法的参数列表自动填充写入可变参数?
- C++有什么方法可以在既不调用函数模板也不提供其模板参数的情况下引用函数模板?
- C++方法是否可以根据传递给构造函数的参数具有不同的返回类型?
- C++接口继承不同的参数方法
- C++ 模板:重载时找不到基类类型参数方法
- 如何使用迭代器作为参数方法?
- 具有不同亚型的参数方法
- 如何以相同的方法在子类中超载的相同方法来实现工作变量参数方法
- 如何将 C 中声明的可选参数方法转换为 c++
- 如果模板化"ResourceCache"需要不同的创建参数/方法,它们如何加载/创建 T 类型的资源?