Note that there are some explanatory texts on larger screens.

plurals
  1. POGetting a bunch of crosses initialization error
    primarykey
    data
    text
    <p>I have this snippets of code taken from a downloaded example:</p> <pre><code>bool ChatServer::event(QEvent * event) { if(event-&gt;type() == QEvent::User) { UserEvent * ue = static_cast&lt;UserEvent *&gt;(event); switch(ue-&gt;userType) { case CR::ErrorEvent: case CR::LogEvent: { TraceEvent * te = static_cast&lt;TraceEvent *&gt;(ue); if(te-&gt;userType == CR::ErrorEvent) { error(te-&gt;msg); } else { log(te-&gt;msg); } } break; default: return false; } } else { return QTcpServer::event(event); } return true; } </code></pre> <p>Now if compile the program I get this errors:</p> <pre><code>g++ -c -pipe -O2 -Wall -W -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4 -I. -I/usr/local/include/qt4 -I/usr/local/include -o chatserver.o chatserver.cpp g++ -c -pipe -O2 -Wall -W -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4 -I. -I/usr/local/include/qt4 -I/usr/local/include -o clientservice.o clientservice.cpp clientservice.cpp: In member function 'virtual bool ClientService::event(QEvent*)': clientservice.cpp:37: error: jump to case label clientservice.cpp:34: error: crosses initialization of 'MessageEvent* me' clientservice.cpp:41: error: jump to case label clientservice.cpp:38: error: crosses initialization of 'UserInfoEvent* uie' clientservice.cpp:34: error: crosses initialization of 'MessageEvent* me' clientservice.cpp:44: error: jump to case label clientservice.cpp:38: error: crosses initialization of 'UserInfoEvent* uie' clientservice.cpp:34: error: crosses initialization of 'MessageEvent* me' clientservice.cpp:31: warning: enumeration value 'EventTypeBegin' not handled in switch clientservice.cpp:31: warning: enumeration value 'LogEvent' not handled in switch clientservice.cpp:31: warning: enumeration value 'ErrorEvent' not handled in switch clientservice.cpp:31: warning: enumeration value 'ClientConnected' not handled in switch clientservice.cpp:31: warning: enumeration value 'ClientReg' not handled in switch clientservice.cpp:31: warning: enumeration value 'ClientDisconnect' not handled in switch clientservice.cpp:31: warning: enumeration value 'ServerConnected' not handled in switch clientservice.cpp:31: warning: enumeration value 'ServerDisconnect' not handled in switch clientservice.cpp:31: warning: enumeration value 'DoConnect' not handled in switch clientservice.cpp:31: warning: enumeration value 'DoDisconnect' not handled in switch clientservice.cpp:31: warning: enumeration value 'GotMessage' not handled in switch clientservice.cpp:31: warning: enumeration value 'GotUserInfo' not handled in switch clientservice.cpp:31: warning: enumeration value 'SendUserInfo' not handled in switch clientservice.cpp:31: warning: enumeration value 'GotClientInfo' not handled in switch clientservice.cpp:31: warning: enumeration value 'SendClientInfo' not handled in switch clientservice.cpp:31: warning: enumeration value 'EventTypeEnd' not handled in switch clientservice.cpp: In member function 'void ClientService::readClient()': clientservice.cpp:63: warning: comparison between signed and unsigned integer expressions clientservice.cpp:87: error: jump to case label clientservice.cpp:83: error: crosses initialization of 'Message* msg' clientservice.cpp:92: error: jump to case label clientservice.cpp:88: error: crosses initialization of 'UserInfo* ui' clientservice.cpp:83: error: crosses initialization of 'Message* msg' clientservice.cpp:97: error: jump to case label clientservice.cpp:93: error: crosses initialization of 'ClientInfo* ci' clientservice.cpp:88: error: crosses initialization of 'UserInfo* ui' clientservice.cpp:83: error: crosses initialization of 'Message* msg' clientservice.cpp: In member function 'bool ClientService::sendToClient(CR::MsgType::MsgType, SendAble*)': clientservice.cpp:124: warning: comparison of unsigned expression &lt; 0 is always false clientservice.cpp: In member function 'void ClientService::gotUserInfo(UserInfo*)': clientservice.cpp:176: error: cast from 'ClientService*' to 'quint32' loses precision *** Error code 1 Stop in ~/SimpleChatRoomServer </code></pre> <p>Now if removed the brackets of <code>case</code> statment I get this error: </p> <pre><code>g++ -c -pipe -O2 -Wall -W -DQT_NO_DEBUG -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/local/share/qt4/mkspecs/freebsd-g++ -I. -I/usr/local/include/qt4/QtCore -I/usr/local/include/qt4/QtNetwork -I/usr/local/include/qt4 -I. -I/usr/local/include/qt4 -I/usr/local/include -o chatserver.o chatserver.cpp chatserver.cpp: In member function 'virtual bool ChatServer::event(QEvent*)': chatserver.cpp:108: error: jump to case label chatserver.cpp:98: error: crosses initialization of 'TraceEvent* te' chatserver.cpp:94: warning: enumeration value 'EventTypeBegin' not handled in switch chatserver.cpp:94: warning: enumeration value 'ClientConnected' not handled in switch chatserver.cpp:94: warning: enumeration value 'ClientReg' not handled in switch chatserver.cpp:94: warning: enumeration value 'ClientDisconnect' not handled in switch chatserver.cpp:94: warning: enumeration value 'ServerConnected' not handled in switch chatserver.cpp:94: warning: enumeration value 'ServerDisconnect' not handled in switch chatserver.cpp:94: warning: enumeration value 'DoConnect' not handled in switch chatserver.cpp:94: warning: enumeration value 'DoDisconnect' not handled in switch chatserver.cpp:94: warning: enumeration value 'GotMessage' not handled in switch chatserver.cpp:94: warning: enumeration value 'SendMessage' not handled in switch chatserver.cpp:94: warning: enumeration value 'GotUserInfo' not handled in switch chatserver.cpp:94: warning: enumeration value 'SendUserInfo' not handled in switch chatserver.cpp:94: warning: enumeration value 'GotClientInfo' not handled in switch chatserver.cpp:94: warning: enumeration value 'SendClientInfo' not handled in switch chatserver.cpp:94: warning: enumeration value 'EventTypeEnd' not handled in switch *** Error code 1 Stop in ~/SimpleChatRoomServer. </code></pre> <p>The complete source code of <code>SimpleChatRoomServer.cpp</code>:</p> <pre><code>#include &lt;QTextStream&gt; #include &lt;QDateTime&gt; #include "traceevent.h" #include "chatserver.h" #include "chatcenterthread.h" #include "clientservicethread.h" #include "message.h" #include "server.h" ChatServer::ChatServer(QObject * parent) :QTcpServer(parent) { QFile * inFile = new QFile(this); QFile * outFile = new QFile(this); QFile * errFile = new QFile(this); inFile-&gt;open(stdin,QIODevice::ReadOnly); outFile-&gt;open(stdout,QIODevice::WriteOnly); errFile-&gt;open(stderr,QIODevice::WriteOnly); setIO(inFile,outFile,errFile); qobject_cast&lt;Server *&gt;(qApp)-&gt;csrId = this; csrId = (QObject *)(0+CR::ServerId); } ChatServer::~ChatServer() { for(int i = 0; i &lt; ccs.size(); i++) { ccs.at(i)-&gt;deleteLater(); } } void ChatServer::setIO(QFile * inFile,QFile * outFile,QFile * errFile) { in.setDevice(inFile); out.setDevice(outFile); err.setDevice(errFile); } void ChatServer::incomingConnection(int socketId) { ClientServiceThread *cst = new ClientServiceThread(socketId,this); cst-&gt;start(); connect(cst,SIGNAL(finished()),cst,SLOT(deleteLater())); } bool ChatServer::init(quint16 &amp; port) { if(!port) { bool ok = false; while(!ok) { out&lt;&lt;tr("Port[5555]: "); out.flush(); QString p; p = in.read(1); if(p!=QString("\n")) { QString strport; strport = in.readLine(10); strport = p + strport; port = strport.toUInt(&amp;ok); } else { port = 5555; ok = true; } } } //ADD ONE ChatCenter ChatCenterThread * cct = new ChatCenterThread(this); cct-&gt;start(); connect(cct,SIGNAL(finished()),cct,SLOT(deleteLater())); if(!listen(QHostAddress::Any,port)) { error(tr("Listen at [%1] fail!").arg(port)); deleteLater(); exit(1); return false; } log(tr("Listen at [%1]").arg(port)); return true; } bool ChatServer::event(QEvent * event) { if(event-&gt;type() == QEvent::User) { UserEvent * ue = static_cast&lt;UserEvent *&gt;(event); switch(ue-&gt;userType) { case CR::ErrorEvent: case CR::LogEvent: TraceEvent * te = static_cast&lt;TraceEvent *&gt;(ue); if(te-&gt;userType == CR::ErrorEvent) { error(te-&gt;msg); } else { log(te-&gt;msg); } break; default: return false; } } else { return QTcpServer::event(event); } return true; } void ChatServer::error(QString msg) { err&lt;&lt;QDateTime::currentDateTime().toString(Qt::ISODate) &lt;&lt;" !ERROR! "&lt;&lt;msg&lt;&lt;endl; } void ChatServer::log(QString msg) { out&lt;&lt;QDateTime::currentDateTime().toString(Qt::ISODate) &lt;&lt;" "&lt;&lt;msg&lt;&lt;endl; } </code></pre> <p>1) Am I using brackets incorrectly?</p> <p>2) Why using brackets in <code>case</code> statement shows <code>crosses initialization</code> to other lines of code.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload