www.matheraum.de
Das Matheforum.
Das Matheforum des MatheRaum.

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Mathe
  Status Schulmathe
    Status Primarstufe
    Status Mathe Klassen 5-7
    Status Mathe Klassen 8-10
    Status Oberstufenmathe
    Status Mathe-Wettbewerbe
    Status Sonstiges
  Status Hochschulmathe
    Status Uni-Analysis
    Status Uni-Lin. Algebra
    Status Algebra+Zahlentheo.
    Status Diskrete Mathematik
    Status Fachdidaktik
    Status Finanz+Versicherung
    Status Logik+Mengenlehre
    Status Numerik
    Status Uni-Stochastik
    Status Topologie+Geometrie
    Status Uni-Sonstiges
  Status Mathe-Vorkurse
    Status Organisatorisches
    Status Schule
    Status Universität
  Status Mathe-Software
    Status Derive
    Status DynaGeo
    Status FunkyPlot
    Status GeoGebra
    Status LaTeX
    Status Maple
    Status MathCad
    Status Mathematica
    Status Matlab
    Status Maxima
    Status MuPad
    Status Taschenrechner

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Mathe-Seiten:Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenSoftwaretechnik und ProgrammierungC++ Frage zu Headerdateien
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Deutsch • Englisch • Französisch • Latein • Spanisch • Russisch • Griechisch
Forum "Softwaretechnik und Programmierung" - C++ Frage zu Headerdateien
C++ Frage zu Headerdateien < Softwaretechnik+Pro < Praktische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Softwaretechnik und Programmierung"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

C++ Frage zu Headerdateien: Headerdateien
Status: (Frage) beantwortet Status 
Datum: 02:22 Sa 03.01.2009
Autor: farnold

Ich soll eine Header-Datei abc.h schreiben diese soll folgendes enthalten:
–enthält Struktur
–Deklaration von Attributen der Klasse
–Deklaration von Methoden der Klasse

dann soll ich noch eine Source-Datei abc.cpp die die Methoden, Struktur, usw, der HeaderDatei abc.h füllt

wie das ganze geht ist mir klar.
was ist nun aber wenn ich mit der  headerdatei abc.h arbeiten will.
ich erstelle z.B. eine Datei test.cpp in die ich abc.h inkludiere also:
#include abc.h
int main()
{
...
}
wenn ich nun in test.cpp auf eine methode von abc.h zugreifen. geht das dann, ich meine das "innere" der Methode ist ja in abc.cpp gespeichert.
oder weiß abc.h wo der inhalt ihrer methoden, usw. gespeichert ist (nämlich in abc.cpp) und abc.h greift automatisch auf abc.cpp zu?

Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.


        
Bezug
C++ Frage zu Headerdateien: Antwort
Status: (Antwort) fertig Status 
Datum: 13:04 Sa 03.01.2009
Autor: Nilandula

Im Prinzip ist deine Vermutung richtig.

Tatsächlich werden die Dateien beim Linken (Teil des Erstellens der ausführbaren Datei) zusammengefügt. Während des Kompilierens wird nur überprüft, ob der Aufruf aus der .cpp Datei zur Signatur der Methode passt. Also ob Rückgabewert und Art und Anzahl der Parameter stimmen. Nach dem Linken verweist der Aufruf dann an die Stelle, an der der Code der Methode als Binärcode gespeichert wurde.

Die Headerdatei dient nur dazu die Signatur einer Methode oder den Aufbau einer Struktur in mehreren cpp Dateien bekannt machen zu können.

Bezug
                
Bezug
C++ Frage zu Headerdateien: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:19 Sa 03.01.2009
Autor: farnold

danke, das heißt also ich kann die methoden der headerdatei abc.h (Methodendefinition wurde in abc.cpp gemacht) in jeder beliebigen *.cpp datei "in vollem umfang" benutzen wenn ich abc.h includiert habe. Natürlich kann ich nur auf das zugreifen "public" ist.

in verbindung mit Klassen hört man immer den Begriff Konstruktor.

Habe ich in einer Klasse keinen Konsturkter festgelegt so erstellt der Compiler von selbst einen "Standardkonstruktor".
Erstelle ich nun aber selbst einen Konstruktor ohne Argumente und initialisiere  einige Attribute im Konstrukorkörper (also in den geschweiften Klammern { ...}, spricht man so auch von einem "Standardkonstruktor" ?

Dann hätte ich noch eine Frage zur Initialisierungsliste.
Habe ich dazu einen Konstruktor z.B.
"Klassenkonstruktor(blabla) : blabla {....}"
ist die Initialisierungsliste nun einfach das was nach dem Doppelpunkte aber vor der geschweiften Klammer steht?

dann habe ich mir noch diesen Satz aufgeschrieben
"Die Attribute, die in der Initialisierungsliste
initialisiert werden, müssen in derselben
Reihenfolge initialisiert werden, in der sie
deklariert wurden"
weiß meinen die mit der "Reihenfolge in der sie deklariert wurden"? Bzw wo deklariert wurden?
Ich versuchs mal anhand eines Beispiels mein Problem deutlich zu machen:

class Hallo
{
int a; // Ist das hier die Reihenfolge der Deklaration?
int b;
public:
Hallo() : a(4) , b(5) // wäre Hallo() : b(5) , a(4) dann falsch da es eine andere Reihenfolge ist, oder meint man mit Reihenfolge etwas anz anderes?
...
};



Bezug
                        
Bezug
C++ Frage zu Headerdateien: Antwort
Status: (Antwort) fertig Status 
Datum: 18:44 So 04.01.2009
Autor: Nilandula

Du kannst die Methode in jeder .cpp benutzen, die zum gleichen Projekt gehört, also im gleichen Build-Vorgang erstellt wird. Willst du sie auch Projektübergreifend nutzen, musst du dir eine .dll bzw eine .lib erstellen.

Ja, der vom Compiler erstellte Konstruktor ist dann immer ein Konstruktor ohne Parameter und ohne Anweisung. Diesen kannst du dann entsprechend deinen Wünschen überladen.

Bei den Initialisierungslisten musst du es nicht in der Reihenfolge aufschreiben, aber beachten, dass es in der Reihenfolge der Deklaration (so wie von dir gekennzeichnet) abgearbeitet wird. Wenn du also Abhängigkeiten voneinadner hast, musst du auf diese Reihenfolge achten und es empfiehlt sich daher auch, es so aufzuschreiben, um die Übersicht zu behalten

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Softwaretechnik und Programmierung"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.matheforum.net
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]