whitefurrows
02-12-2006, 14:41
Hi,
ich würde gerne von Object3 auf Object2 zugreifen können, warum funktioniert das nicht?
Gruß
Whitefurrows
////////////////////////////////// main() ////////////////////////////////
#include
#include
#include "obj2.h"
#include "obj3.h"
int main( int argc, char* argv[] )
{
QApplication app(argc, argv);
Object2 obj2;
Object3 obj3;
obj2.addObject3(obj3);
Object2* pobj2;
pobj2 = obj3.getObject2();
QPushButton pbShow(QString::number(pobj2->data["value1"]));
pbShow.resize(100, 50);
pbShow.show();
return app.exec();
return 0;
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////// Object1 //////////////////////////////
#ifndef OBJ1_H
#define OBJ1_H
#include
class Object1
{
public:
Object1();
virtual~Object1();
QString getInfo();
void setInfo(QString info);
protected:
QString info;
};
#endif
//--------------------------------------------------------------
#include "obj1.h"
Object1::Object1()
{
info="InfoText";
}
Object1::~Object1(){}
void Object1::setInfo(QString i)
{
info=i;
}
QString Object1::getInfo()
{
return info;
}
//////////////////////////////////////////////////////////////////////////
////////////////////////////// Object2 ////////////////////////////////
#ifndef OBJ2_H
#define OBJ2_H
#include "obj1.h"
#include "obj3.h"
#include
#include
using namespace std;
class Object2 : public Object1
{
public:
Object2();
~Object2();
void addObject3(Object3 obj3);
QList lstObject3;
map data;
};
#endif
//--------------------------------------------------------------
#include "obj2.h"
Object2::Object2():Object1()
{
data["value1"]=123;
}
Object2::~Object2(){}
void Object2::addObject3(Object3 obj3)
{
obj3.setObject2(this);
lstObject3.append(obj3);
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////// Object3 //////////////////////////////
#ifndef OBJ3_H
#define OBJ3_H
#include "obj1.h"
class Object2;
class Object3 : public Object1
{
public:
Object3();
~Object3();
void setObject2(Object2* obj2);
Object2* getObject2();
private:
Object2* object2;
};
#endif
//--------------------------------------------------------------
#include "obj3.h"
#include "obj2.h"
Object3::Object3():Object1()
{
object2=0;
}
Object3::~Object3(){}
void Object3::setObject2(Object2* obj2)
{
object2=obj2;
}
Object2* Object3::getObject2()
{
return object2;
}
//////////////////////////////////////////////////////////////////////////
ich würde gerne von Object3 auf Object2 zugreifen können, warum funktioniert das nicht?
Gruß
Whitefurrows
////////////////////////////////// main() ////////////////////////////////
#include
#include
#include "obj2.h"
#include "obj3.h"
int main( int argc, char* argv[] )
{
QApplication app(argc, argv);
Object2 obj2;
Object3 obj3;
obj2.addObject3(obj3);
Object2* pobj2;
pobj2 = obj3.getObject2();
QPushButton pbShow(QString::number(pobj2->data["value1"]));
pbShow.resize(100, 50);
pbShow.show();
return app.exec();
return 0;
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////// Object1 //////////////////////////////
#ifndef OBJ1_H
#define OBJ1_H
#include
class Object1
{
public:
Object1();
virtual~Object1();
QString getInfo();
void setInfo(QString info);
protected:
QString info;
};
#endif
//--------------------------------------------------------------
#include "obj1.h"
Object1::Object1()
{
info="InfoText";
}
Object1::~Object1(){}
void Object1::setInfo(QString i)
{
info=i;
}
QString Object1::getInfo()
{
return info;
}
//////////////////////////////////////////////////////////////////////////
////////////////////////////// Object2 ////////////////////////////////
#ifndef OBJ2_H
#define OBJ2_H
#include "obj1.h"
#include "obj3.h"
#include
#include
using namespace std;
class Object2 : public Object1
{
public:
Object2();
~Object2();
void addObject3(Object3 obj3);
QList lstObject3;
map data;
};
#endif
//--------------------------------------------------------------
#include "obj2.h"
Object2::Object2():Object1()
{
data["value1"]=123;
}
Object2::~Object2(){}
void Object2::addObject3(Object3 obj3)
{
obj3.setObject2(this);
lstObject3.append(obj3);
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////// Object3 //////////////////////////////
#ifndef OBJ3_H
#define OBJ3_H
#include "obj1.h"
class Object2;
class Object3 : public Object1
{
public:
Object3();
~Object3();
void setObject2(Object2* obj2);
Object2* getObject2();
private:
Object2* object2;
};
#endif
//--------------------------------------------------------------
#include "obj3.h"
#include "obj2.h"
Object3::Object3():Object1()
{
object2=0;
}
Object3::~Object3(){}
void Object3::setObject2(Object2* obj2)
{
object2=obj2;
}
Object2* Object3::getObject2()
{
return object2;
}
//////////////////////////////////////////////////////////////////////////