ACHTUNG ANFÄNGER - Einzellanwendung - Module zusammenführen



  • moin all!
    mein erster post hier und hab da mal eine absolute anfänger frage:
    ich experementiere noch ein bisschen rum und wollte nun probieren ein project auf verschiedene dateien zu verteilen (so wg. übersichtlichkeit und so). habe also ein file "main.cpp" und ein file "StringHandler.cpp" beides gehört zum Projekt "Funktionen".
    Nun das problem: habe eine Klasse "tStringHandler" mit der Funktion "toUpper" im File "StringHandler" und will nun von der "Main funk." aus auf die Funktion der "tStringHandler" Klasse zugreifen - wie krieg ich das hin ???
    Als Compiler/ IDE benutz ich den Dev c++ (Bloodshed) - hoffe bin hier im richtigen forum...
    Den code spar ich hier mal (sind ehh nur 5 zeiler) und es geht darum die module eines projekts zusammen zu fassen.
    hoffe hab das hier alles verständlich zusammengefasst - für jede hilfe vielen dank im voraus!
    euer / blacksierra



  • Ich versteh leider nicht wo das Problem bei dir liegt.
    Eine Funktion einer Klasse nennt man Methode!

    Allg. Tipps:
    Hast du eine StringHandler.h gmacht ? Hier screibst du Die Deklartionen hin

    class A{
    public:
    //Konstrukor und destruktor nicht vergessen
        int funkt(int a);
    };
    

    In der StringHandler die Definition

    #include "StringHandler.h"
    A::funkt(int a){
    //code
    }
    

    In der main.cpp

    #include "StringHandler.h"
    int main(){
    A bla();
    bla.funkt(10);
    return 0
    }
    

    mfg



  • Dazu nimmst du dann Headerdateien.

    Also also Deklarationen in die Headerdatei und alle Definitionen dann ín die CPP dateien.
    In jeder CPP-Datei, die dann die entsprechende Header inkludiert, sind dann die Methoden der Klasse bekannt.



  • Du musst eine Datei StringHandler.h anlegen (also mit dem selben Namen wie die cpp) und die in main.cpp einbinden:

    #include "StringHandler.h"
    

    Die Headerdatei brauchst du, weil man keine cpp-Dateien einbinden darf.

    Noch was zur Aufteilung: Normalerweise schreibt man die Memberdeklarationen in die Headerdatei und die Definitionen in die cpp-Datei, also so:

    // foo.h
    
    class Foo
    {
    public:
        int bar(int);
    }
    
    // foo.cpp
    
    #include "foo.h"
    
    int Foo::bar(int a)
    {
        return a * 2;
    }
    


  • ok danke erstmal ... das konzept mit zwei files (h + cpp) war mir so noch nicht klar - werd mal ein wenig experementieren und meld mich nochmal - danke für die schnellen antworten!!



  • ja - jetzt funktionierts
    wegen einbindung externer .dll meld ich mich wohl in ner woche wieder 😃


Anmelden zum Antworten