grundlegendes Verständis: Aufbau Projekt



  • Hallo und zwar habe ich folgendes...

    Eine Klasse Auto

    class Auto{
    
    };
    

    und jetzt 2 verschiedene .cpp dateien mit Algorithmen.

    Alg1.cpp

    void function1(){
    benutzt Auto..
    
    }
    

    Alg2.cpp

    void function2(){
    benutzt Auto..
    
    }
    

    (natürlich viel komplexer)

    jetzt möchte ich in einer neuen .cpp datei meine main funktion schreiben, und in dieser function1 und function2 aufrufen.

    Wie geht das??

    Noch eine andere grundsätzliche Frage, wenn ich eine .cpp datei habe, mit funktionen die was berechnen (keine Klasse!) sollte ich hier auch eine header datei anlegen?
    wie würde die dann ausehen?
    Einfach:

    void funk1();
    void funk2();
    ...
    

    Vielen vielen Dank !!



  • jetzt möchte ich in einer neuen .cpp datei meine main funktion schreiben, und in dieser function1 und function2 aufrufen.

    also ich denke mal das würde so gehen...

    //3. cpp programm
    #include"1.cppprogramm."
    #include"2.cppprogramm."
    #include"diedateimitderautoklasse"
    
    int main()
    {
      funktion1();
      funktion2();
    }
    

    versuch es mal so... 😃



  • okay, also ergibt sich folgendes Problem:

    in Algo1.cpp

    funktion1(){
    Auto Porsche...
    }
    

    in Algo2.cpp

    funktion2(){
    Auto Porsche...
    

    kann das eigentlich gehen, das ich in beiden Porsche verwende?

    er meckert jetzt:

    multiple definition of (und dann eine Funktion aus Auto, auf die Porsche zugreift..)

    ich hoffe mich kann man verstehen... 😕



  • blumfeld schrieb:

    kann das eigentlich gehen, das ich in beiden Porsche verwende?

    Ja das geht.

    blumfeld schrieb:

    er meckert jetzt:

    multiple definition of (und dann eine Funktion aus Auto, auf die Porsche zugreift..)

    ich hoffe mich kann man verstehen... 😕

    Du verknüpfst die dateien wohl falsch nehme ich mal an, dadurch entsteht dieser Fehler, aber ohen zus ehen wie du die dateien evrknüpft ahst und was ca drin steht is das schwierig zu sagen worans genau liegt.



  • Also grundsätzlicher Aufbau wie es bei dir aussehen sollte, ist ungefähr so:

    //Auto.h
    #ifndef AUTO_CLASS
    #define AUTO_CLASS
    
    class Auto
    {
       void irgendwelcheSachen();
      //irgendwas geiles
    };
    #endif AUTO_CLASS
    
    //Auto.cpp
    #include "Auto.h"
    
    void Auto::irgendwelcheSachen()
    {
      //implementation
    }
    
    //Funktionen.h
    #ifndef FUNKTIONEN_H
    #define FUNKTIONEN_H
    
    namespace function
    {
    
      void funktion1();
      void funktion2();
    }
    
    #endif FUNKTIONEN_H
    
    //Funktionen.cpp
    #include "Funktionen.h"
    #include "Auto.h"
    void function::funktion1()
    {
      //implementation 
      //benutzung von Auto
    }
    void function::funktion2()
    {
       //implementation
       //benutzung von Auto
    }
    
    //main.cpp
    #include<iostream>
    #include "Funktionen.h"
    #include "Auto.h"
    
    int main()
    {
       //benutzung von funktion1
       function::funktion1();
    
     return 0;
    }
    

    @<<set.GER[6] .cpp Dateien bitte nie includieren, sondern immer die zugehörige .h Datei.


Anmelden zum Antworten