这是什么意思
What is mean this convert?
i在C 中使用qtframework开发。我遇到了这种转换方法是static_cast<void (QTcpSocket::*)(QAbstractSocket::SocketError)>
(&QAbstractSocket::error)
。但是我不明白这是什么意思?
qtcpsocket 从基类 qabstractsocket 继承。qabstractsocket中有一个方法SocketError error()
和一个信号void error(QAbstractSocket::SocketError socketError)
,即具有相同名称。
在存在过载的情况下,该函数名称本身的地址本身是模棱两可的。您可以使用static_cast<>()
来指定根据功能指针类型所隐含的功能签名使用的功能。
您问题中的演员选择信号是因为void (QTcpSocket::*)(QAbstractSocket::SocketError)
是返回void
并采用参数QAbstractSocket::SocketError
的函数类型的指针。
例如,要使用函数指针语法连接到QAbstractSocket::error
信号,必须在静态铸件中指定信号类型。
static_cast<void (QTcpSocket::*)(QAbstractSocket::SocketError)> (&QAbstractSocket::error)
其中:
&QAbstractSocket::error
-是名为 error(...)
;
它将其施放到void (QTcpSocket::*)(QAbstractSocket::SocketError)
-这是一个指向(qtcpsocket)函数的指针,该功能采用参数QAbstractSocket::SocketError
并返回void
。
因此,我们是从Qabstractsocket(也许是基类)的函数的地址铸造为QTCPSOCKECT(也许是派生类)的函数指针。
注意
塔拉马基(Talamaki如果您弄错了编译器时间错误的成本。我经常认为这更清楚(例如,这个问题可能不需要问)。以下是一个示例:
// Here we can explicitly choose the correct function,
// and its clear to any reader what is going on.
connect(pTcpSocket, SIGNAL(error(QAbstractSocket::SocketError)),
this, SLOT(errorHandler(QAbstractSocket::SocketError)));
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- "类模板示例<int>;"语句对 C++11 是什么意思?
- 线应该是什么意思
- "CID"在AT+HTTPPARA= "CID" ,1中是什么意思
- 表达式"b=(b-x)&x"是什么意思?
- 这个表达是什么意思?
- 此代码验证公式是什么意思?
- 跟踪日志中的T.11803()是什么意思?
- 这个额外的关键字在这个 c++ 类声明中是什么意思?
- * 和 ** 在 C++ 函数声明中是什么意思?
- _T("xyz")是什么意思?
- #define Dbg(fmt,..) (0) 是什么意思? 警告:表达式无效
- 这行代码到底是什么意思?
- 当我们说在执行程序时将操作系统的控制权传递给main()函数时,我们的意思是什么
- 这句话在c++中的意思是什么
- 这个typedef的意思是什么
- 这句话的意思是什么
- 意思是什么
- 这个句法的意思是什么?