我使用 C++ 中的 QtFramework 进行开发。我遇到的这个转换方法是static_cast<void (QTcpSocket::*)(QAbstractSocket::SocketError)>
(&QAbstractSocket::error)
。但我一直不明白这是什么意思?
最佳答案
QTcpSocket继承自基类QAbstractSocket。有一个方法SocketError error()
和一个信号void error(QAbstractSocket::SocketError socketError)
在 QAbstractSocket ,即具有相同的名称。
在存在重载的情况下,函数名称的地址本身是不明确的。您可以使用static_cast<>()
根据函数指针类型隐含的函数签名来指定要使用哪个函数。
您问题中的 Actor 选择信号是因为 void (QTcpSocket::*)(QAbstractSocket::SocketError)
是一个指向 QTcpSocket 中函数类型的指针,它返回 void
并采用参数 QAbstractSocket::SocketError
.
例如连接到QAbstractSocket::error
使用函数指针语法的信号,必须在静态转换中指定信号类型。
关于c++ - 这个转换是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37901339/