none
Klassen anbinden RRS feed

  • Frage

  •  

    Hallo zusammen !

    Bin beim lernen von C++ Grundlagen, und komm nicht mit die Klassen klar.

    Wie ich eine Classe / DLL erstellen muß ist mir schon klar.

    So wie in Buch steht, wenn man eine Klasse/DLL in Projekt anbinden will, braucht man Header Datei.

    Wenn ich eine Klasse erstelle, wird in Header folgende Code automatische von IDE geschrieben:

     

    #ifndef __MAIN_H__
    #define __MAIN_H__
    
    #include <windows.h>
    
    /* To use this exported function of dll, include this header
     * in your project.
     */
    
    
    #ifdef BUILD_DLL
     #define DLL_EXPORT __declspec(dllexport)
    #else
    
     #define DLL_EXPORT __declspec(dllimport)
    #endif
    
    
    #ifdef __cplusplus
    extern
     "C"
    
    {
    #endif
    
    void
     DLL_EXPORT SomeFunction(const
     LPCSTR sometext);
    
    #ifdef __cplusplus
    }
    #endif
    
    #endif // __MAIN_H__
    
    <br/>
    <br/>
    <br/>
    In Klasse steht diese Code:<br/>
    <br/>
    <pre lang="x-cpp"
    >#include "main.h"
    
    #include "iostream.h"
    
    
    
    //===========================================================================================
    //===========================================================================================
    // CODE IN KLASSE
    class Cat { public : Cat (int initialAge); ~Cat(); int GetAge() { return itsAge;}// inline void SetAge (int age) { itsAge = age;} // inline void Meow(){ cout << "Mau \n" ;} // inline private : int itsAge; };

    In Console steht diese Code:

    #include <iostream>

    //Klasse "Cat" anbinden
    #include <E:\Kurs C++\Projekt 22\ClasseCat\main.cpp>




    using namespace std;
    Cat::Cat (int initialAge)
    {
    itsAge = initialAge;

    }

    Cat::~Cat()
    {
    }

    int main()
    {
    Cat Frisky (5);
    Frisky.Meow();
    cout << "Frisky ist eine Katze, die ist" << " ";
    cout << Frisky.GetAge() << " " << "jahre alt! \n";
    Frisky.Meow();
    Frisky.SetAge(7);
    cout << "Jetzt Frisky" << " " << Frisky.GetAge() << " " << "Jahre alt !";

    return 0;
    }

     

    Nun meine Frage, warum, wenn ich Datei mit Endung "CPP" anbinde (siehe Code in Console) funz der Projekt, aber wenn ich main.h anbinde, werden mir viel fehler angezeigt ?

     

    Danke für die Antworten !

    Mittwoch, 7. Juli 2010 17:20

Antworten

  • Ja, ich übe in Console.

    Habe buch von Markt&Technik sitze und studiere die Grundlagen, einziges wo ich nicht so ganz klar komme mit anbindung !

    Aber ok, danke für die antworten, habe gefunden was ich wissen wollte !

     

     

    • Als Antwort markiert API Checker Donnerstag, 8. Juli 2010 17:10
    Donnerstag, 8. Juli 2010 17:10

Alle Antworten

  • Hallo API"

    #include <E:\Kurs C++\Projekt 22\ClasseCat\main.cpp>

    Was soll das denn? Warum includierst Du eine cpp-Datei?

    Auch habe ich Deine Frage irgendwie nicht wirklich verstanden...

    Auch würde es helfen wenn Du genau sagst, was nicht geht... also mit Fehlermeldung!

    funz nicht ist irgendwie nicht so aussagekräftig...


    Jochen Kalmbach (MVP VC++)
    Mittwoch, 7. Juli 2010 18:52
  • Hai !
    Das ist Pfad zu "main.cpp", wenn ich header Datei schreibe:

    #include main.h

    oder

     

    mit kompletten pfad:

    #include <E:\Kurs C++\Projekt 22\ClasseCat\main.h

     

    Beim anbinden von der Klasse bekomme ich fehler "Classe nicht deklariert", der Compiler findet die Klasse nicht.

    Wenn ich "CPP" datei anbinde, funz  alles bestens.

    C++ ist für mich absolut neues gebiet, bis jetzt bin mit Grundlagen sehr gut klar gekommen, nur komme ich bei Klassen nicht weiter.

    Ich würde mich sehr frohen wenn mir einer erklären kann, wie ich die Klasse richtig anbinden muß, unabhängig in welchen Verzeichnis der Klasse liegt ?

     

    Danke für die Antworten !

     

     

     

    Donnerstag, 8. Juli 2010 15:33
  • Hallo API!

    C++ ist für mich absolut neues gebiet, bis jetzt bin mit Grundlagen sehr gut klar gekommen, nur komme ich bei Klassen nicht weiter.

    Und warum fängst Du dann gleich mit DLLs an, wenn Du nicht mal das "normale" Klassen Konzept verstanden hast...

    Du solltest zuerst mal in einem Projekt (z.B. Consolen Projekt) mit verschiedenen Klassen in verschiedenen cpp und h-Dateien arbeiten und diese gegenseitig verwenden, damit Du ein prinzipielles Gefühl für Klassen bekommst.

    Und wenn Du dass dann gut verstanden hast, kannst Du Dich an DLLs wagen... vorher macht das keinen Sinn...

    Ich würde mich sehr frohen wenn mir einer erklären kann, wie ich die Klasse richtig anbinden muß, unabhänging in welchen Verzeichnis der Klasse liegt ?

    Es gibt genügend Beispiele und Tutorials mit Klassen im Internet...
    http://www.gidf.de/

    Und auch mit DLLs...


    Jochen Kalmbach (MVP VC++)
    Donnerstag, 8. Juli 2010 16:26
  • Ja, ich übe in Console.

    Habe buch von Markt&Technik sitze und studiere die Grundlagen, einziges wo ich nicht so ganz klar komme mit anbindung !

    Aber ok, danke für die antworten, habe gefunden was ich wissen wollte !

     

     

    • Als Antwort markiert API Checker Donnerstag, 8. Juli 2010 17:10
    Donnerstag, 8. Juli 2010 17:10
  • PS: Nur ein Hinweis: Du solltest den Artikel als "Antwort" markieren, welcher die Antwort enthält... nicht Deine Antwort auf die Antwort ;)


    Jochen Kalmbach (MVP VC++)
    Donnerstag, 8. Juli 2010 19:20