Struktureller Aufbau und Schachtelung von Klassen

Alles rund um die Programmierung mit Qt
Antworten
Husi
Beiträge: 6
Registriert: 29. Oktober 2018 18:07
Wohnort: Enger

Struktureller Aufbau und Schachtelung von Klassen

Beitrag von Husi »

Hallo erstmal alle Miteinander

Zu den Rahmenbedingungen:
c++
QT 5.11
Windows 7
QT Designer

Ich habe ein Programm geschrieben in dem es eine Klasse "spindel" gibt. Diese beinhaltet neben vielen Methoden auch ein recht komplexes Struct in dem alle Informationen rund um einen speziellen Messvorgang abgelegt werden.

Nun brauche ich ein Fenster in dem der Benutzer sich einen Graphen zusammenklicken kann um sich Messwerte von verschiedenen Messvorgängen zu Visualisieren. So weit so einfach ;)
Allerdings möchte ich nicht sämtliche Methoden die ich für dieses Fenster benötige in meiner Klasse spindel unterbringen. Eine eigene Klasse für das Graph Fenster zu erstellen wäre für mich schon wünschenswert. Allerdings erscheint es mir nicht nur zu aufwendig sondern auch falsch für alle Einzelteile meines Datenstructs eine Gettermethode zu schreiben.
Es ist doch sicher möglich eine Art Vererbung oder ähnliches zu nutzen um meiner Graphklasse nur einen Pointer zu übergeben mit dem ich dann auf alle Structmember zugreifen kann ohne sie gleich als Public zu deklarieren.

HIer mein Header der Spindelklasse:

Code: Alles auswählen

class spindel
{
protected:
    struct daten_t
    {
        struct kopf_t
        {
            QDate erstelldatum=QDate(1000,1,1);
            QString dateiname;
            QString motortyp;
            QString motornr;
            QString maschinentyp;
            QString lagervorne;
            QString lagermitte;
            QString lagerhinten;
            QString bohrungstiefe;
            double planlauf=0.0;
            double rundlauf=0.0;
            QString bemerkung1;
            QString bemerkung2;
            QTime laufzeit=QTime(0,0,0);
        }kopf;
        struct werte_t
        {
            QList<int> nr;
            QList<QTime> zeitpunkt;
            QList<int> zeitspanne;
            QList<QList<double>*> werte;
            QList<double> maxwert;
            QList<double> endwert;
        }werte;
        QList<QString> spalten;
    }daten;

private:
    QList<int> start;
    QList<int> ende;
    void datensetup(QString kopfzeile);
    void zeileauswerten(QString zeile);
    void maxEndWert();

public:
    QList<int> getNr();
    QList<QTime> getZeitpunkt();
    QList<int> getZeitspanne();
    QList<double> getWerte(int nr);
    spindel();
    void einlesenTxt(QString pfad);
    void einlesenDb(QSqlDatabase *db,int nr);
    int einlesenAccess(QSqlDatabase *db,int nr);
    void schreibenDb(QSqlDatabase *db);
    void graph(QWidget* parent);
    void protokoll(QString name);
};
Ich hoffe ich hab mich einigermaßen verständlich ausgedrückt.
Vielen Dank schon mal im voraus ;)
Friedrich
Beiträge: 4
Registriert: 10. Januar 2019 17:51

Re: Struktureller Aufbau und Schachtelung von Klassen

Beitrag von Friedrich »

Hast du es mal mit befreundeten Strukturen probiert? (im Sinne des Schlüsselwortes friend)
Antworten