【发布时间】:2021-09-04 18:27:33
【问题描述】:
在 python 中,我们可以使用参数名称将参数传递给被调用函数,如下面的代码,我们如何在 C++ 中做同样的事情, 我需要这个是因为,如果我们有太多参数,很容易弄乱在被调用函数和调用函数中传递的参数的位置
def calendar(year,month,day):
return "f{day}:{month}:{year}"
print(calendar(day=4,year=2021,month=9) #here arguments are passed in order of day,year and month
输出
"4:9:2021"
与使用命名参数定义函数时传递的参数不一样
string calendar(int year,int month,int day)
{
return year,month,day;
}
int main ()
{
cout<<calendar(" ? ");// How can we pass arguments like that of python in c++
}
【问题讨论】:
-
你到底卡在哪里了?此外,不要问有关“C 或 C++”的问题。它们是不同的语言,如果您想了解两者,那么您有两个问题。您提出这个问题的方式表明您实际上没有需要解决的问题(或者您会选择一种实现语言并为问题提供足够的上下文),而只是将语言作为一种琐事进行比较。请记住,Stack Overflow 不是论坛。
-
C 和 C++ 都不支持命名参数。所以你不能那样做。在 C++ 中最接近命名参数的是这样的 hack:pdimov.github.io/blog/2020/09/07/named-parameters-in-c20
-
有助于了解调用了哪些功能,并清楚地沟通。我不明白您对代码的调用方最感兴趣。这意味着您正在处理参数。因此,为了解决您的问题,您应该考虑采取的第一步是将
c++ named arguments放入搜索引擎。请记住you are expected to do some research yourself first here. -
我投票重新开放是因为,IMO,问题很明确(re. C/C++ equiv of named parameters)。它可能是 KamilCuk 引用的链接的副本,但我喜欢 dbush 的回答。最周到/彻底的解释是github链接,但我们不能将非SE链接标记为重复
-
当心XY problem,您几乎会成为它的牺牲品。您的真正问题是不是 “如何在C++ 中使用命名参数?” 而是“如何处理具有许多参数的函数在 C++ 中?” 询问根本问题。您可以(并且确实)使用 Python 的方法来说明一种语言是如何实现这一点的,但不要假设在一种语言中有效的东西在另一种语言中直接类似。不同的语言可能对同一障碍使用不同的方法。
标签: python c++ user-defined-functions