簡體   English   中英

未命名函數參數用法

[英]Unnamed function parameter usage

當閱讀一些代碼時,我看到了這種未命名的指針用法作為函數參數。 這種用法是什么意思?

RequestAddListItem(QListWidgetItem*)

在此行中使用( https://socket.io/blog/socket-io-cpp/

connect(this,SIGNAL(RequestAddListItem(QListWidgetItem*)),this,SLOT(AddListItem(QListWidgetItem*)));

宣言:

// in mainwindow.h
Q_SIGNALS:
    void RequestAddListItem(QListWidgetItem *item);

這不是真正的C ++語法。 SIGNAL()宏會將其轉換為字符串並將其用作標識符。 通過匹配Q_SIGNALS部分中的信號聲明,它用於標識要綁定的正確信號。 這是一種選擇的約定,可用於省略這些標識符中的參數名稱。 考慮到這些名稱將變得毫無意義,而信號/插槽名稱已足夠好描述,這是一個自然的決定。

通常,函數聲明中的參數名稱是可選的,它們僅在函數定義中才有意義,因為訪問參數是必需的。 從技術上講,它們仍然是可選的。

如果它是函數聲明的一部分,則意味着它不需要命名(例如,在標頭中)。 如果它是函數定義的一部分,則表示未使用參數。

如果此函數需要是一個覆蓋的虛擬函數,需要傳遞的回調等(例如,與某些函數簽名匹配),則可能需要聲明它(參數)。

暫無
暫無

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

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