Struktur an Klasse übergeben



  • Ich nehme an, das deine Beschreibung korrekt ist.



  • Zum dritten Mal: Das ist möglich! Zeig mehr Code!



  • Hallo Blurry333,

    der Fehler steht doch daa. Das sind zwei unterschiedliche Typen.

    Warum genau willst du denn nicht das machen, was dir hier vorgeschlagen wird? Wenn du mal erklären würdest, warum, dann würde man eventuell nicht so in die Richtung drücken.



  • Hier mehr Code, das macht es aber nur noch unübersichtlicher.
    Hab bereits bei der Klasse Dateiverwaltung anstatt

    struct NLP_data_header_package *Header_data...
    

    versucht

    com::NLP_data_header_package *Header_data
    

    funktioniert aber auch nicht.

    Class com

    #ifndef COM_H
    #define COM_H
    //...
    #include "Dateiverwaltung.h"
    //...
    
    class com
    {
    private:
    
    Dateiverwaltung obj;
    //...
    public:
    
    int run(void);
    com(std::array<std::string,TWO> socket);
    ~com();
    
    struct NLP_data_header_package
    {
    	//...
    }NLP_data_recv;
    
    struct NLP_data_data_package
    {
            //...
    }recv_data_data;
    
    //...
    

    class com cpp file:

    //...
    if (recv_command == DATA_COMMAND)
    		{
    			obj.routine(ip_s.c_str(), &NLP_data_recv, &recv_data_data); //write to harddrive
    			obj.ext_close_file();
    
    		}
    //...
    

    Class Dateiverwaltung

    #ifndef DATEIVERWALTUNG_H
    #define DATEIVERWALTUNG_H
    
    //...
    #include "communication.h"
    //...
    public:
    	Dateiverwaltung(char* directory_global_re);
        ~Dateiverwaltung();  
    
    	int routine(std::string raw_data_re, struct NLP_data_header_package *Header_data, struct NLP_data_data_package *Data_data);
    	int ext_close_file(void);
    //...
    

    Class Dateiverwaltung cpp file

    //...
    int Dateiverwaltung::routine(string raw_data_re, struct NLP_data_header_package *Header_data, struct NLP_data_data_package *Data_data)
    {
    //...
    


  • LOL! Typischer Anfängerfehler: Cross-Include der Headerdateien (s. z.B. FAQ-Beitrag Wechselseitiger Zugriff auf Objekte).

    @KeinKredit: Du hast aber den Ratschlag, die Struktur(en) in eine eigene Datei auszulagern, nicht befolgt!

    Ein andere Alternative wäre, daß du die Strukturen in der Headerdatei "Dateiverwaltung.h" deklarierst (denn diese bindest du ja von der anderen Headerdatei "communication.h" ein).


Anmelden zum Antworten