Buffer mit Inhalt in mehreren Klassen verwenden?



  • Hallo 🙂

    Ich habe eine Frage. Ich möchte gerne einen Buffer, welchen ich in einer Klasse erstelle und auch mit Daten fülle, in einer anderen Klasse verwenden, samt dem Inhalt. Ist dies möglich?



  • Ja. Für eine genauere Antwort solltest du eine bessere Frage stellen. (Und auch gleich erklären, was genau du erreichen möchtest.)



  • cooky451 schrieb:

    Ja. Für eine genauere Antwort solltest du eine bessere Frage stellen. (Und auch gleich erklären, was genau du erreichen möchtest.)

    Ok, dann stelle ich mal eine genauere Frage.

    Beispiel:

    Ich habe eine Klasse A mit der Variable int x. Diese hat den Wert x = 10.
    Ich habe eine weitere Klasse B. ´Mit dieser Klasse möchte ich gerne auf die Variable x von der Klasse A zugreifen, wobei die Variable auch den Wert 10 haben muss.



  • kartal66 schrieb:

    ´Mit dieser Klasse möchte ich gerne auf die Variable x von der Klasse A zugreifen, [...]

    Das klingt nicht gut. Wenn Klasse B über die Innereien von A bescheid wissen muss, dann ist sehr wahrscheinlich irgendwas faul...



  • dot schrieb:

    kartal66 schrieb:

    ´Mit dieser Klasse möchte ich gerne auf die Variable x von der Klasse A zugreifen, [...]

    Das klingt nicht gut. Wenn Klasse B über die Innereien von A bescheid wissen muss, dann ist sehr wahrscheinlich irgendwas faul...

    Ich arbeite derzeit mit einem Werkzeug, wo ein Buffer mit 15000 Einträgen von einem Filter(Software-Modul) über Pins zu einem anderen Filter transportiert werden muss. Dies dauert aber leider ungefähr 15Sekunden um die 15000 Einträge einzeln durchzuschicken. Deshalb möchte ich gerne im Filter, welches diese Daten braucht, direkt auf den Buffer mit Inhalt zugreifen, anstatt es über Pins zu transferieren.



  • kartal66 schrieb:

    dot schrieb:

    kartal66 schrieb:

    ´Mit dieser Klasse möchte ich gerne auf die Variable x von der Klasse A zugreifen, [...]

    Das klingt nicht gut. Wenn Klasse B über die Innereien von A bescheid wissen muss, dann ist sehr wahrscheinlich irgendwas faul...

    Ich arbeite derzeit mit einem Werkzeug, wo ein Buffer mit 15000 Einträgen von einem Filter(Software-Modul) über Pins zu einem anderen Filter transportiert werden muss. Dies dauert aber leider ungefähr 15Sekunden um die 15000 Einträge einzeln durchzuschicken. Deshalb möchte ich gerne im Filter, welches diese Daten braucht, direkt auf den Buffer mit Inhalt zugreifen, anstatt es über Pins zu transferieren.

    Wenn die Pins die definierten Schnittstellen sind, dann wäre es ziemlich schlecht, wenn Du Dein internes Wissen benutzt, um dies zu umgehen. Und 15000 Einträge sollten selbst mit dem übelsten Algorithmus keine Sekunde dauern.



  • Tachyon schrieb:

    kartal66 schrieb:

    dot schrieb:

    kartal66 schrieb:

    ´Mit dieser Klasse möchte ich gerne auf die Variable x von der Klasse A zugreifen, [...]

    Das klingt nicht gut. Wenn Klasse B über die Innereien von A bescheid wissen muss, dann ist sehr wahrscheinlich irgendwas faul...

    Ich arbeite derzeit mit einem Werkzeug, wo ein Buffer mit 15000 Einträgen von einem Filter(Software-Modul) über Pins zu einem anderen Filter transportiert werden muss. Dies dauert aber leider ungefähr 15Sekunden um die 15000 Einträge einzeln durchzuschicken. Deshalb möchte ich gerne im Filter, welches diese Daten braucht, direkt auf den Buffer mit Inhalt zugreifen, anstatt es über Pins zu transferieren.

    Wenn die Pins die definierten Schnittstellen sind, dann wäre es ziemlich schlecht, wenn Du Dein internes Wissen benutzt, um dies zu umgehen. Und 15000 Einträge sollten selbst mit dem übelsten Algorithmus keine Sekunde dauern.

    Das mit ner Sekunde ist leider nicht so. Ich habe ja auch versucht den Buffer mit einer for-schleife durchzuschicken. Klappt leider nicht. Ich arbeite mit dem Tool ADTF und das ganze läuft im Millisekundentakt. D.h. eine Datei pro Millisekunde über einen Pin

    http://www.bilder-upload.eu/upload/d2757e-1324302545.png



  • kartal66 schrieb:

    Ich habe eine Klasse A mit der Variable int x. Diese hat den Wert x = 10.
    Ich habe eine weitere Klasse B. ´Mit dieser Klasse möchte ich gerne auf die Variable x von der Klasse A zugreifen, wobei die Variable auch den Wert 10 haben muss.

    Na ja.. einfach eine Referenz zurückgeben ist doch kein Problem. 😕

    class A
    {
      int i_;
    public:
      int &get()
      {
        return i_;
      }
    };
    

    Aber trotzdem, sinnvoll ist das nicht unbedingt. Wenn du das Problem noch weiter beschreibst (gerne gleich mit Beispielcode), wird dir bestimmt jemand eine performante und gleichzeitig elegante Lösung liefern.

    Edit:
    Noch eine Möglichkeit wäre natürlich Klasse B als friend in A zu setzen, dann ist der Zugriff zumindest nicht ganz offen. Ist aber immer noch unschön.



  • kartal66 schrieb:

    Ich arbeite derzeit mit einem Werkzeug, wo ein Buffer mit 15000 Einträgen von einem Filter(Software-Modul) über Pins zu einem anderen Filter transportiert werden muss. Dies dauert aber leider ungefähr 15Sekunden um die 15000 Einträge einzeln durchzuschicken. Deshalb möchte ich gerne im Filter, welches diese Daten braucht, direkt auf den Buffer mit Inhalt zugreifen, anstatt es über Pins zu transferieren.

    Du hast also einen Filtergraphen der dir einen Buffer bearbeiten soll?
    Na dann schick den Buffer eben in den Graphen rein:

    struct Buffer;  // unwichtig
    
    class FilterNode
    {
    public:
      virtual void filter(Buffer& data) = 0;
    };
    
    class MyFilter : public FilterNode
    {
    private:
      FilterNode& next;
    public:
      void filter(Buffer& data)
      {
        // mach was mit data
        next.filter(data);
      }
    };
    

Anmelden zum Antworten