【发布时间】:2021-08-03 14:03:44
【问题描述】:
我来自 Objective-C,并且喜欢在 c++11 中使用 c++ 的内联函数,它们很有用!可悲的是,我的插槽在这里遇到了问题(这个设置让我想起了协议和委托,我想知道我是否可以创建一个专门的类来表现得像 obj-c 中的“委托”)。
#include <QCoreApplication>
#include <QtNetwork/QTcpSocket>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QTcpSocket *socket = new QTcpSocket;
socket->connectToHost("qt.nokia.com", 80);
QObject::connect(socket, &QTcpSocket::connected, [socket, page] () {
socket->write(QByteArray("GET " + "index.html" + "\r\n"));
});
QObject::connect(socket, &QTcpSocket::readyRead, [socket] () {
qDebug()<< "GOT DATA "<< socket->readAll();
});
return a.exec();
}
这给了我以下错误:
main.cpp:10: error: expected expression
QObject::connect(socket, &QTcpSocket::connected, [socket, page] () {
^
【问题讨论】:
-
您的编译器中是否启用了 C++11?例如,lambdas 是否有效?
标签: c++ qt inline-code