gültigkeit der fuktionen.
-
puuhhh. ich verstehe nur bahnhof.
aber ich werd mir das mal in ruhe alles anschauen.
danke.
eine sache die mir aufgefallen ist, raff ich mal so gar nicht.
#ifndef CALCULATION_HEADER_GUARD_3256234243134__ #define CALCULATION_HEADER_GUARD_3256234243134__ double add(double lhs, double rhs); double sub(double lhs, double rhs); double mult(double lhs, double rhs); double div(double lhs, double rhs); #endif // CALCULATION_HEADER_GUARD_3256234243134__wozu hast du das gechrieben, wenn du in der .cpp das hier geschrieben hast.
#include "Calculation.hpp" // Nun definieren wir die Funktionen. double add(double lhs, double rhs) { return lhs + rhs; } /************************************************************************/ double sub(double lhs, double rhs) { return lhs - rhs; } /************************************************************************/ double mult(double lhs, double rhs) { return lhs * rhs; } /************************************************************************/ double div(double lhs, double rhs) { return lhs / rhs; }Ich versteh das nicht. wozu muss man den header überhaupt noch mit einbinden?
ich hab doch alles was ich brauche in der .ccp.den rest, werd ich mir mal in aller ruhe anschauen.
danke erstmal.
-
samsonitex schrieb:
Ich versteh das nicht. wozu muss man den header überhaupt noch mit einbinden?
ich hab doch alles was ich brauche in der .ccp.Das ist modulare Programmierung. Du hast mehrere .cpp-Dateien, die einzeln kompiliert werden können. Die Funktionen sind dort implementiert, der Header dient nur als Schnittstelle, um die Funktionen bekannt zu machen.
Eine Darstellung der Dateien zur Veranschaulichung (beide .cpp-Dateien inkludieren den Header, durch Linien verdeutlicht):
[b]Calculation.h[/b] Deklaration der Funktionen / \ / \ / \ / \ [b]Main.cpp[/b] [b]Calculation.cpp[/b] Benutzung der Funktionen Definition der Funktionen
-
ich hab das immernoch nicht verstanden.
es ist doch besser, wenn ich die funktion bereits im header definiere oder nicht?
wenn nicht, warum?
ich verstehe den unterschied nicht. wenn ich sie bereits im header definiere und sie in verschiedene .cpp dateien einbinde, kann ich sie doch auch einzeln kompelieren.
-
samsonitex schrieb:
es ist doch besser, wenn ich die funktion bereits im header definiere oder nicht?
wenn nicht, warum?
Nein. Erstens, weil du damit die Implementierung offen legst. Headerdateien sollten aber primär ein Interface anbieten. Aber schlimmer ist zweitens, du musst dann nämlich sämtliche Dateien, die den Header einbinden, neu kompilieren, wenn du etwas an der Funktion änderst. Drittens kann
inlineauch langsamer sein und führt zu mehr Code (Optimierungen jetzt mal ausser Acht gelassen).samsonitex schrieb:
ich verstehe den unterschied nicht. wenn ich sie bereits im header definiere und sie in verschiedene .cpp dateien einbinde, kann ich sie doch auch einzeln kompelieren.
Nein, jedes Modul (.cpp-Datei) wird für sich kompiliert. Die Funktion darf aber in allen Modulen total nur einmal definiert sein. Es handelt sich schliesslich um die gleiche Funktion, was würde es bringen, zur Laufzeit mehrere davon zu haben?
Im Weiteren empfehle ich dir, dich zum Beispiel in einem Buch ausführlicher mit der Thematik zu befassen.
-
Nexus schrieb:
Im Weiteren empfehle ich dir, dich zum Beispiel in einem Buch ausführlicher mit der Thematik zu befassen.
lol.
bücher habe ich genug.
ich sag doch, das ich erst seit zwei wochen dran bin.
-
samsonitex schrieb:
lol.
bücher habe ich genug.
ich sag doch, das ich erst seit zwei wochen dran bin.Hast du den anderen Teil meines Posts auch gelesen und vor allem verstanden?
Ich hab das im Übrigen nur gut gemeint. Vielleicht ist es zum jetzigen Zeitpunkt aber auch noch ein wenig zu früh für modulare Programmierung...
-
nein, verstanden habe ich das immernoch nicht. ich werd das mal ausprobieren müssen um mir ein bild machen zu können, da ich die problematik nicht sehe.(noch nich).
Wie gesagt, ich beschäftige mich erst seit 2 wochen damit.
ich habe in meinem programm nur das gemacht, was ich bis jetzt durch habe.
es wird halt noch ne weile dauern, bis ich wirklich mitreden kann.
naja, dann werd ich noch n bißchen lesen.
danke erstmal
-
samsonitex schrieb:
Ich versteh das nicht. wozu muss man den header überhaupt noch mit einbinden?
ich hab doch alles was ich brauche in der .ccp.Hat ein bisschen technischer Hintergrund. Ich habe gerade einen ellenlangen Text geschrieben und ihn dann wieder gelöscht. Ich weiss nicht, ob das so gut ist, wenn du mit 2 Wochen Erfahrung dies lesen würdest. Wahrscheinlich würde es dich nur noch mehr verwirren

Was für Bücher hast du denn? Wenn du ein gutes C++ Buch erwischt hast, wird dich dieses bestimmt auch in diese Thematik einführen. Ich denke es ist besser, wenn wir das dem Buch überlassen, sofern es eben ein gutes ist. Es gibt nämlich verdammt viele, die sehr schlecht sind.
Grüssli
-
das sind meine bücher:
Markt und Technik - Magnum C++
Pearson Studium - Intensivkurs C++
Markt und Technik - Jetzt lerne ich C++
Markt und Technik - C++ der leichte Einstieg
Pearson Studium - C++ Programmierung im klartext.was könnt ihr mir sonst für bücher empfehlen?
Leicht zu lesen und verständlich sollten sie sein. und vor allem, für anfänger.
Danke
-
Schau doch einfach mal in die FAQ.
http://www.c-plusplus.net/forum/viewtopic-var-t-is-112134.html
-
Uh, Markt & Technik. Und bevor Nexus oder jemand anderes kommt, ich habe nunmal schlechte Erfahrungen damit gemacht und bin glaub ich nicht der einzige

Die Bücher in der FAQ sind zu empfehlen und zusätzlich vielleicht noch diese zwei:
- C++ Primer
C++ Primer | ISBN: 3827326125- Programming
Principles and Practice Using C++
Programming: Principles and Practice Using C++ | ISBN: 0321543726Das zweitere soll eher ein Buch für Programmieranfänger sein. Also anfangen zu programmieren und das einfach mit der Sprache C++.
Grüssli
-
Dravere schrieb:
Uh, Markt & Technik. Und bevor Nexus oder jemand anderes kommt, ich habe nunmal schlechte Erfahrungen damit gemacht und bin glaub ich nicht der einzige

Bevor du mich falsch verstehst: Ich kenne nur ein Buch von Markt&Technik, und das wäre das "C/C++-Kompendium". Nur weil die meisten Bücher dieses Verlages angeblich Mist sind, muss das ja nicht für alle gelten...
