0
dialog.h를 컴파일하는 데 문제가 발생했습니다. 컴파일러는 QHostAddress :: Any가 형식이 아니며 숫자 상수 앞에 예상 식별자가 있다고 불평합니다. (둘 다 dialog.h의 마지막 줄에서).클래스 인스턴스화시 qt 컴파일러 오류
왜 컴파일되지 않는지 누군가가 알 수 있습니까?
class Server : public QTcpServer
{
Q_OBJECT
public:
Server(QHostAddress listenAddress, quint16 listenPort, QObject *parent = 0);
QHostAddress hostAddress;
quint16 hostPort;
protected:
void incomingConnection(qintptr socketDescriptor);
private:
};
대화 : 나는
dialog.h
#include <QWidget>
#include <QHostAddress>
#include "server.h"
class QLabel;
class QPushButton;
class Dialog : public QWidget
{
Q_OBJECT
public:
Dialog(QWidget *parent = 0);
private:
QLabel *statusLabel;
QPushButton *quitButton;
Server server;
};
server.h ... 내가 생각 ... 서버 개체를 인스턴스화, 서버 생성자가 기대하는 매개 변수를 전달 해요 cpp를 (부분적으로)
Dialog::Dialog(QWidget *parent)
: QWidget(parent), server(QHostAddress::Any, 4000)
{
server.cpp (부분)
#include "server.h"
#include "clientthread.h"
#include <stdlib.h>
Server(QHostAddress listenAddress, quint16 listenPort, QObject *parent = 0)
: hostAddress(listenAddress), hostPort(listenPort), QTcpServer(parent)
{
}
위의 코드가 업데이트되었습니다. 이제 컴파일러가 불평합니다 :
Server의 생성자 정의에서 'listenAddress'앞에 ')'가 올 것으로 예상됩니다.
하지만 (4)의 :: 모든 열거 값을 전달하려면 ... – TSG
@Michelle : 알았어, 당신이 생성자를 호출 할 때,하지만 그것을 선언 할 때, 실제 값이 아닌 인자로 타입을 포함해야한다. – vahancho
위의 server.h에서 내가 그랬다고 생각했습니다. 변경할 코드를 표시하는 고정 코드 몇 줄을 제공 할 수 있습니까? – TSG