首页 > 解决方案 > 未命名函数参数用法

问题描述

当阅读一些代码时,我看到这个未命名的指针用法作为函数参数。这种用法是什么意思?

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++

解决方案


这不是真正的 C++ 语法。SIGNAL()宏会将其转换为字符串并将其用作标识符。它用于通过匹配部分中的信号声明来识别要绑定的正确信号Q_SIGNALS。这是一个选择的约定,用于在这些标识符中省略参数名称。这是一个自然的决定,因为这些名称往往没有意义,而信号/插槽名称足以描述。

通常,函数声明中的参数名称是可选的,它们仅在函数定义中重要,因为它们是访问参数所必需的。从技术上讲,它们仍然是可选的。


推荐阅读