簡體   English   中英

如何將可選參數傳遞給C ++中的方法?

[英]How to pass optional parameter to a method in C++?

如何將可選參數傳遞給C ++中的方法?

有沒有像在C#中那樣的方式,我們可以使用此語句Func(identifier:value),該語句允許我將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) ,但不是您給出的示例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM