簡體   English   中英

我如何為 void 語句 C++ 中缺少的參數設置默認值

[英]How can i set a default value for a missing argument inside void statement C++

所以,我有這個代碼例如:

void doSomething(int aValue, int aValue2) {
    /*thigs to do...*/
}
int main() {
    doSomething(9);
}

請注意,我只將 9 用於aValue並且aValue2為空。

我想要的是用某個默認值自動填充缺失的aValue2

有什么辦法嗎?

至少有兩種方法可以做到這一點。 第一種方法是使用默認參數聲明 function,如下所示:

void doSomething(int aValue, int aValue2 = 123);

...然后當它僅使用一個參數調用時,編譯器會將調用視為第二個參數作為123提供。 請注意,默認值位於聲明function 的行中,而不是定義它的位置,因此如果您有一個包含函數聲明的單獨的.h文件,則= 123將 go 出現在那里而不是在.cpp文件中.

另一種方法是重載 function,如下所示:

 void doSomething(int aValue, int aValue2) {
     /*things to do...*/
 }

 void doSomething(int aValue) { 
     doSomething(aValue, 123);
 }

這有點冗長,但它使您可以更靈活地決定當調用者僅提供一個參數時應如何調用 function 的第一個(雙參數)版本。

你想要的是默認參數,如果你沒有 function 的前向聲明,你可以將值分配給 function 聲明或定義中的參數。在下面的示例中, aValue2的默認參數設置為 100。

void doSomething(int aValue, int aValue2 = 100) {
    /*thigs to do...*/
}
int main() {
    doSomething(9);
}

暫無
暫無

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

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