У меня есть класс с именем server
с server.h
следующим образом:Объявление класса QT/C++ частного члена, не видимого конструктору?
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:
};
и server.cpp
следующим образом (частично):
Server(QHostAddress listenAddress, quint16 listenPort, QObject *parent = 0)
: hostAddress(listenAddress), hostPort(listenPort), QTcpServer(parent)
{
}
Проблема заключается в том, что я хотел бы сохранить hostAddress
и hostPort
частные. Однако, когда я сделал их частными в объявлении класса, компилятор жаловался на то, что моей инициализации конструктора не разрешили изменять этих закрытых членов. Зачем? Разве это не конструктор внутри одного класса, поэтому он должен иметь возможность изменять частные переменные?
Этот вопрос, как представляется, не по теме, поскольку речь идет о ошибке простой C++ , Это никому не поможет. –
@KubaOber Это не обязательно делает это вне темы. –
@ SimonAndréForsberg: см., Например, [этот мета-вопрос] (http://meta.stackexchange.com/questions/167342/close-all-the-typo-questions). –