Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > General Coding > Coding Tutorials
You last visited: Today at 01:50

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[TUT C++ ] Header files (für Anfänger)

Discussion on [TUT C++ ] Header files (für Anfänger) within the Coding Tutorials forum part of the General Coding category.

Reply
 
Old   #1
 
black0utCpp's Avatar
 
elite*gold: 0
Join Date: Oct 2010
Posts: 381
Received Thanks: 210
Post [TUT C++ ] Header files (für Anfänger)

Hallo Leute ,

Hier mal ein sehr sehr grundlegendes Tutorial über headers
(einbinden , selber erstellen etc ).


Also nun zu unserem "Tutorial":

Wenn ihr schon Erfahrung in der C/C++ Programmierung habt (wovon ich ausgehe) wird die erste Zeile in eurem Source Code sicherlich so , oder so ähnlich, aussehen :
Code:
#include <iostream> // Beispiel Iostream
Aber was machen wir hier eigentlich ?!

Die Bibliothek IOSTREAM

Grob gesagt :

"Wir inkludieren eine Bibliothek, die bestimmte
Funktionen , Defines ... enthält. In unserem Beispiel (siehe oben) haben wir die Bibliothek IOSTREAM eingebunden .
Der Name IOSTREAM kommt eigentlich von 2 Bibliotheken
ISTREAM und OSTREAM
Istream für die Usereingabe (cin)
Ostream für die Ausgabe (cout , cerr( Fehlerausgabe ) , clog( Fehlerausgabe mit Puffer ) )

Also steht das "I" in IOSTREAM für Input
das "O" für Output
aber wofür steht das STREAM ?

Streams sind ,prinzipiell, dafür verantwortlich , dass das was ihr in die Tastatur "hämmert" auch wirklich auf dem Monitor ausgegeben wird (weiteres führt zu weit vom Thema ab wenn es euch interessierte einfach googelen :-) )
(Mehr dazu :)

Soviel zum Thema IOSTREAM!

Quote:
Eine Bibliothek ist eine Sammlung von .obj-Dateien, die in Ihr Programm eingebunden werden können und ihm zusätzliche Funktionalität verleihen. Dies ist die einfachste Form der Wiederverwertung von einem Code. Es gibt sie, seit die Programmierer begonnen haben Einsen und Nullen in die Wände ihrer Höhlen zu meißeln.
(aus C++ in 21 Tagen )

Aber wie kann ich selber eine Bibliothek / Header Datei erstellen ?

Dies ist eigentlich gar nicht mal so schwierig als allererstes öffnet ihr eure IDE (Entwicklungsumgebung) (in Code::Blocks gibt es die Möglichkeit gleich eine Bibliothek zu erstellen ich werde hier aber die etwas üblichere Methode wählen :-)

Dann tippt ihr folgendes ein :

Code:
//Die Bibliotheken die wir brauchen um Funktionen in UNSERER Bibliothek zu schreiben 

#include < iostream> //1.

#ifndef NAMEVONDEINERBIBLOTHEK_H_   //2.
#define NAMEVONDEINERBIBLOTHEK_H_  //3.
(// sind Kommentare (sollte klar sein ))

1.
Wir binden wie gewohnt eine Bibliothek ein (iostream)

2.
Hier wird es interessant
#ifndef ist eine Präprozessordirektive (googeln) und steht für
"if not defined" (zu deutsch falls nicht definiert)
Er schaut ob es die Bibliothek (NAMEVONDEINERBIBLOTHEK_H_)
schon definiert ist um sicher zu sein , dass eine Bibliothek nicht mehrmals eingebunden wird.

Weiter zu Punkt 3.

3.
Bei Punkt drei wird , falls die Bibliothek nocht nicht definiert ist (siehe Punkt 2. ) definiert und erstellt!.

Puuuh die groben "Konturen" unser Bibliothek stehen also schon müssen wir nur noch unsere NAMEVONDEINERBIBLOTHEK_H_
mit Funktionen "füllen"!

Wir schreiben :
Code:
#include < iostream> //1.

#ifndef NAMEVONDEINERBIBLOTHEK_H_   //2.
#define NAMEVONDEINERBIBLOTHEK_H_  //3.

void hallosagen()
{
cout<<"Hallo\n"; //4.
}
#endif //5.
4.
Wir schreiben eine einfache Funktion , die bei der Ausführung Hallo ausgibt.

5.
#endif
Eine weiter Präprozessordirektive die dem Compiler mitteilt , dass hier der Code zu Ende ist !

Demonstration
Um zu demonstrieren , das wir die Funktion hallosagen()
wirklich aus dieser Bibliothek heraus ausführen können hier ein Programm :

Code:
#include <iostream>
#include "NAMEVONDEINERBIBLOTHEK.h"

using namespace std;

int main(void)
{

hallosagen();
return 0 ;
}

Ausgabe :

Hallo

Bei Fragen und Verbesserungsvorschlägen einfach Comment
posten DANKE

Euer Black0ut !
black0utCpp is offline  
Thanks
2 Users
Old 10/20/2010, 22:39   #2


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,907
Received Thanks: 25,408
Quote:
Da wir nicht obj Datein einbinden sondern
Header Datein (daher auch das H ) sagen wir dem Linker (googeln ) , dass er eine Header Datei erstellen soll damit wir unsere Funktion am Ende auch benutzen können!
wait...wat?

Wir sagen dem Linker, dass er eine Header Datei erstellen soll, damit die Funktionen auch nutzbar sind? Entweder weißt du nicht, was du da schreibst oder das musst du nochmal gründlich neuformulieren.
Die .h Datei erstellt man selbst, mit dem Texteditor/der IDE und dem Linker ist ziemlich egal, ob es eine .h, eine .cpp oder eine .whatever Datei ist.
Auch, dass man Funktionen "nur" nutzen kann, wenn man sie in einer Header Datei deklariert ist Quatsch.
Was das ganze nun mit obj zutun hat und wie du von obj auf .h kommst, wird auch nicht klar.

Die Erklärungen der Präprozessordirektiven sind teilweise auch Murx und gerade die Erklärung, warum sie da stehen, fehlt; eher gesagt, du hast es nicht verständlich/ausführlich ausgedrückt.


Aber schlussendlich:

Wo ist der Sinn?? o.ô
Jeder, der die Sprache lernt, lernt automatisch auch, dass man nicht nur .cpp Dateien, sondern auch .h Dateien machen kann und darin Funktionen/Klassen seperat deklarieren sollte.
Spätestens, wenn das Tutorial/Buch Klassen erreicht.
Du solltest dir mal selbst die Frage stellen, an wen dieses Tutorial gerichtet ist und was das Ziel ist.
Was sollen sie hiernach besser können als vorher?
MrSm!th is offline  
Thanks
1 User
Old 10/20/2010, 23:33   #3
 
mydoom's Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 322
Received Thanks: 98
^
this and this:

Du solltest zudem auf die Rechtschreibung achten. Es macht keinen Spaß "Sätze", wie
Quote:
[...] Tutorial über headers [...]
Quote:
[...] Wir inkludieren [...] eine Bibliothek ein [...]
zu lesen. Auch die Kommasetzung solltest du dir noch einmal ansehen:
Quote:
sind ,prinzipiell, dafür
mydoom is offline  
Thanks
1 User
Old 10/21/2010, 17:10   #4
 
black0utCpp's Avatar
 
elite*gold: 0
Join Date: Oct 2010
Posts: 381
Received Thanks: 210
Erstmal danke für die Kritik ...

Sicherlich stimmt es , dass hier einige Fehler vorliegen (was mir Leid tut ) jedoch ist 90 % richtig und habe es gestern am Stück geschriebn (und bedauerlicherweiße hatte ich Kopfweh)

Ich werde es wohl oder übel nochmal überarbeiten

und zu :
Quote:
Wo ist der Sinn?? o.ô
Jeder, der die Sprache lernt, lernt automatisch auch, dass man nicht nur .cpp Dateien, sondern auch .h Dateien machen kann und darin Funktionen/Klassen seperat deklarieren sollte.
Spätestens, wenn das Tutorial/Buch Klassen erreicht.
Du solltest dir mal selbst die Frage stellen, an wen dieses Tutorial gerichtet ist und was das Ziel ist.
Was sollen sie hiernach besser können als vorher?
ich habe schon tausend mal die Frage gelesen , wie man Header selber erstellt . Also dachte ich mir , dass da doch klärungsbedarf besteht also nochmal sorry wegen dem Linker Ding wird überarbeitet !


Quote:
zu lesen. Auch die Kommasetzung solltest du dir noch einmal ansehen:
Zitat:
sind ,prinzipiell, dafür
Das ist doch richtig! Eine sogenannte Apposition (glaube ich )
black0utCpp is offline  
Old 10/21/2010, 18:58   #5


 
MrSm!th's Avatar
 
elite*gold: 7110
Join Date: Jun 2009
Posts: 28,907
Received Thanks: 25,408
Die Frage stellen dir aber sicher nur Leute, die nur copypasten und keinen Blassen Schimmer über die Sprache haben.
Niemand, der auch nur ansatzweise wirklich die Sprache lernen will, und zwar nicht wie man Autoit meist lernt, sondern richtig, wird dir diese Frage stellen, da es, wie ich schon sagte, nicht gerade schwer ist, eine .txt/.h/.whatever Datei zu erstellen und, dass man Deklarationen extra in einem Header machen kann, sollte im Laufe des Lernvorgangs auch klar werden.

zu der Sache mit dem Komma:
Das hängt davon ab, wie man den Satz betont ;O
MrSm!th is offline  
Thanks
1 User
Old 10/22/2010, 14:40   #6
 
black0utCpp's Avatar
 
elite*gold: 0
Join Date: Oct 2010
Posts: 381
Received Thanks: 210
Okay , sorry Leute wollte nur helfen ....
black0utCpp is offline  
Reply

Tags
bibliothek, erstellen, header, selber


Similar Threads Similar Threads
Css Header !!!
05/16/2010 - Counter-Strike - 10 Replies
Hallo E*com wollte mal fragen ob mir einer ein header machen kann :§ Es sollte : E.Gaming drauf stehen Clan Tag : -=e.G=- (Sollte dabei sein)! Der header solllte schwarz rot ornage sein mit css motive druff so ein typ mit m4a1 oder so Wer das macht bekommt ein FETTEN THANKS!!!!!!! Also den header hab ich schon bloß die schrieft nicht !!
HP Header >>>>
02/21/2010 - Metin2 Private Server - 24 Replies
Hey leute, ich suche jmd der mir für mein DynDns Server ein Homepage Header macht es sollte der name drauf stehen sprich FantasticMT2 wer lust drauf hat einfach posten :) mfg Luan
Header
02/20/2010 - Metin2 Private Server - 8 Replies
Hey liebe com Kann mir einer helfen nen geilen Header für mein Regipage auf den header den namen FinalDownMt2 pls ich krigs nicht hin der jendige kirgt nen bonus auf den server
Header
11/27/2009 - Metin2 Private Server - 2 Replies
Hallo, Ich will für meinen PServer ne HP Machen Nun will ich nen Header mit GIMP machne! Mit welchem Tool oder mit welchem Effekt aus der Taskleiste kann ich nen geilen Text machen mit effekten z.b hervorgehoben oder eingeprägt=
Header Files
01/15/2008 - Kal Online - 2 Replies
Hi, Ich interessiere mich für BakaBugs Headerfiles aus dem Kalhack 11. Wenn mir jemand sagen könnte wo man die herbekommt wäre ich dankbar:D Mit freundlichen Grüßen Nippelnator



All times are GMT +1. The time now is 01:50.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.