c++ - 未命名函数参数用法
问题描述
当阅读一些代码时,我看到这个未命名的指针用法作为函数参数。这种用法是什么意思?
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
。这是一个选择的约定,用于在这些标识符中省略参数名称。这是一个自然的决定,因为这些名称往往没有意义,而信号/插槽名称足以描述。
通常,函数声明中的参数名称是可选的,它们仅在函数定义中重要,因为它们是访问参数所必需的。从技术上讲,它们仍然是可选的。
推荐阅读
- django - 如何优化查询 facebook graph API
- caching - apollo-cache-persist 在 nuxt 中使用 vue-apollo
- c++ - 如何在其他cpp文件中使用嵌套的Q_ENUM,而不是在qml中?
- react-router - 如何使语义-ui-react 选项卡单击使用 react-router NavLink 更新 URL?
- python - 如何在python中删除序列中的行
- javascript - 从内部返回函数返回时,管道不是函数
- javascript - 如何用由数组组成的 ul 列表替换 DOM 元素?
- karate - 在空手道中执行断言时出现错误“实际值不是字符串”
- c++ - 字符数组地址和整数数组地址
- java - Spring Security 中的 authorizeRequests 有什么作用?