Classe anbinden [nicht gelöst]
-
Hallo zusammen !
Bin dabei C++ grundlagen zu lernen. Habe eine Frage wie muß ich die Klasse an Projekt anbinden, oder welche sauberen möglichkeiten gibs um eine Klasse an Projekt anzubinden ?
Ich verwende CodeBlocks !Danke für die Antworten !
-
Entweder "Klasse" oder "Class" aber nicht so ein "Denglisch"...
Jetzt definiere anbinden? Kommst du zufällig von Java?Letztendlich hat man in C++ das in mehrere Dateien aufgeteilt, wobei eine mindestens eine int main() aufweisen muss, da dies der Eintrittspunkt der Applikation ist.
z.B.
[main.cpp]
#include <stdio> #include "meineKlasse.h" int main(){ MeineKlasse k; std::cout << k.helloWorld(); return 0; }[meineKlasse.h]
#include <string> class MeineKlasse{ public: std::string helloWorld(); };[meineKlasse.cpp]
#include "meineKlasse.h" #include <string>// Möglich das des hier vernachlässigbar ist, da im Header schon inkludiert. std::string MeineKlasse::helloWorld(){ return "Hallo Welt"; }In Code::Blocks kann man halt Header und Source Dateien via "Neu" dem Projekt hinzufügen.
Edit: Paar kleinere syntaktische Fehler behoben

Disclaimer:
Das Beispiel bezieht sich nicht auf syntaktische Vollständigkeit oder wie man eine Klasse strukturiert, aufbaut, etc. sondern soll nur verdeutlichen wie man eine Klasse "anbindet".
-
Danke !
Ne, nicht Java, sondern VB !
-
Sorry für doppelpost.
Ich will jetzt nicht neuen Thread öffnen !
Das mit Header datei hats nicht geklappt, da bekomme ich viele fehler !Code in Console:
#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; }Code in Classe:
#include "main.h" #include "iostream.h" 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 header Datei main.h, steht folgende Code, der Code wird automatisch von Entwicklungumgebung generiert:
#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__Wenn ich Datei mit Dateiendung "CPP" anbinde (siehe Code in Console) funz alles, aber wenn ich header Datei "main.h" anbinde, bekomme ich viele fehler.
Kann mir jemand erklären warum mit header Datei nicht funz ?
Danke für die Antworten !
-
rename your file to something else
-
Ohje Ohje Ohje... Sag doch das du eine DLL erstellen willst, dann sieht natürlich das "Grundgerüst" anders aus, da hat man dann z.B. keine direkte main() Funktion sondern nur eine Spezifische wenn du auf Attached/Detached Events reagieren willst...
Wenn du jedoch nur Funktionen bereit stellen willst lohnt es sich das hier mal durchzulesen:
http://de.wikipedia.org/wiki/Dynamic_Link_Library
Da ist dann auch ein Beispielcode in C++
Hier noch ein MFC Tutorial zu DLLs
http://www.codeguru.com/cpp/cpp/cpp_mfc/tutorials/article.php/c9855/Besser aber wäre es sich erstmal in C++ einzulesen und die Sprache zu lernen bevor man mit sowas "rumfrickelt".
MFG
Blackskyliner
-
Danke für die nette Antwort !
Bin gerade beim lernen.....Mit DLL habe unter VB gearbeitet, das C++ ist für mich absolut neue gebiet !