[gelöst] QDataStream Problem
Verfasst: 8. Oktober 2008 09:54
Hallo, ich bekomme immer folgende Fehlermeldunge:
C2248: "QObject::operator =": Kein Zugriff auf private Member, dessen Deklaration in der QObject-Klasse erfolgte.
Mein Code-Ausschnitt worin der Fehler verursacht wird.
LoginRequest - Header
LoginRequest - Source
RequestPackage - Header
RequestPackage - Source
Wäre schön, wenn mir jemand helfen könnte, mein Problem zu lösen.
C2248: "QObject::operator =": Kein Zugriff auf private Member, dessen Deklaration in der QObject-Klasse erfolgte.
Mein Code-Ausschnitt worin der Fehler verursacht wird.
LoginRequest - Header
Code: Alles auswählen
#ifndef LOGINREQUEST_H_
#define LOGINREQUEST_H_
#include <Qt/qobject.h>
#include <QtCore/QDataStream>
class LoginRequest : public QObject
{
Q_OBJECT
QString user;
public:
LoginRequest(QObject* parent = 0);
virtual ~LoginRequest();
void setUser(QString user);
QString getUser();
};
QDataStream& operator<<(QDataStream & dataStream, LoginRequest & loginRequest);
QDataStream& operator>>(QDataStream & dataStream, LoginRequest & loginRequest);
#endif
LoginRequest - Source
Code: Alles auswählen
#include "LoginRequest.h"
LoginRequest::LoginRequest(QObject* parent) : QObject(parent)
{
}
LoginRequest::~LoginRequest()
{
}
void LoginRequest::setUser(QString user) {
//this->user = user;
}
QString LoginRequest::getUser() {
//return this->user;
return 0;
}
QDataStream& operator<<(QDataStream & dataStream, LoginRequest & loginRequest)
{
QString user = loginRequest.getUser();
dataStream << user;
return dataStream;
}
QDataStream& operator>>(QDataStream & dataStream, LoginRequest & loginRequest)
{
QString user;
dataStream >> user;
loginRequest.setUser(user);
return dataStream;
}
Code: Alles auswählen
#ifndef REQUESTPACKAGE_H_
#define REQUESTPACKAGE_H_
#include <Qt/qobject.h>
#include "LoginRequest.h"
class RequestPackage : public QObject
{
Q_OBJECT
int Type;
LoginRequest loginRequest;
public:
enum TYPE {LOGIN, DBQUERY};
RequestPackage(QObject* parent = 0);
RequestPackage(TYPE type, QObject* parent = 0);
virtual ~RequestPackage();
//return the Request-Type (show enum-List)
int getType();
//set the Request-Type (show enum-List)
void setType(int type);
LoginRequest getLoginRequest();
void setLoginRequest(LoginRequest loginRequest);
friend QDataStream &operator<<(QDataStream & dataStream, RequestPackage & requestPackage);
friend QDataStream &operator>>(QDataStream & dataStream, RequestPackage & requestPackage);
};
#endif
Code: Alles auswählen
#include "RequestPackage.h"
#include "LoginRequest.h"
RequestPackage::RequestPackage(QObject* parent /*= 0*/ ) : QObject(parent)
{
}
RequestPackage::RequestPackage(TYPE type, QObject* parent /*= 0*/ ) : QObject(parent)
{
//Type can be a value of enum-List
this->Type = type;
this->loginRequest = new LoginRequest();
}
RequestPackage::~RequestPackage()
{
}
//return the Request-Type (show enum-List)
int RequestPackage::getType() {
return this->Type;
}
//set the Request-Type (show enum-List)
void RequestPackage::setType(int type) {
this->Type = type;
}
LoginRequest RequestPackage::getLoginRequest() {
return this->loginRequest;
}
void RequestPackage::setLoginRequest(LoginRequest loginRequest) {
this->loginRequest = loginRequest;
}
//WRITE
QDataStream& operator<<(QDataStream & dataStream, RequestPackage & requestPackage)
{
dataStream << requestPackage.getType();
switch(requestPackage.getType())
{
//RequestPackage::LOGIN
case RequestPackage::LOGIN:
dataStream << requestPackage.getLoginRequest();
break;
}
return dataStream;
}
//READ
QDataStream& operator>>(QDataStream & dataStream, RequestPackage & requestPackage)
{
int wert;
dataStream >> wert;
requestPackage.setType(wert);
switch(requestPackage.getType())
{
//RequestPackage::LOGIN
case RequestPackage::LOGIN:
LoginRequest loginRequest;
dataStream >> loginRequest;
requestPackage.setLoginRequest(loginRequest);
break;
}
return dataStream;
}