bin nicht so fit, was OOP betrifft und habe gerade ein grundlegendes Verständnisproblem.
Ich schreibe an einem C++/Qt-Programm, mit dem man Daten in Form von Listen ablegt und diese bearbeiten soll. Solange ich mit meinen Daten in einer Klasse arbeite, in der ich diese erschaffen habe, geht das auch alles. Wenn ich diese Daten aber für anderen Klassen zur Verfügung stellen möchte, dann breche ich mir immer einen ab.
Wie macht man das nun sauber?
Dachte mir, ich schreibe ein Klasse (MyContainer), in der ich meine Variablen / Listen ebenfalls erschaffe und in der Funktionen stehen, mit denen ich die Daten in der Klasse A (wo die Daten erschaffen wurden) an meine MyContainer übertrage, dort werden sie gespeichert und wer dann wieder auf diese Daten zugreifen möchte, erschafft ein Objekt der Klasse, zB.
Code: Alles auswählen
MyContainer giver;HEADER
Code: Alles auswählen
#ifndef MYCONTAINER_H
#define MYCONTAINER_H
#include "candata.h"
#include <qlistview.h>
class MyContainer
{
public:
MyContainer();
~MyContainer();
QPtrList<CanData> getPtrList();
void givePtrList(QPtrList<CanData>);
QListView getInputListView();
void giveInputListView(QListView*);
QListView getOutputListView();
void giveOutputListView(QListView*);
private:
QPtrList<CanData> canDataList;
QListView *inputListView;
QListView *outputListView;
};
#endifCode: Alles auswählen
#include "mycontainer.h"
MyContainer::MyContainer()
{
}
MyContainer::~MyContainer()
{
}
QPtrList<CanData> MyContainer::getPtrList()
{
return canDataList;
}
void MyContainer::givePtrList(QPtrList<CanData> list)
{
canDataList=list;
}
QListView MyContainer::getInputListView()
{
return *inputListView;
}
void MyContainer::giveInputListView(QListView *list)
{
inputListView=list;
}
QListView MyContainer::getOutputListView()
{
return *outputListView;
}
void MyContainer::giveOutputListView(QListView *list)
{
outputListView=list;
}Wie macht man das generell mit Datentransfer? Nur über Funktionen mit Return ist doch irgendwie zu kompliziert, oder?
Gruß, Notwist