Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » #include <blabla.cpp> ???

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
10.01.2004, 10:04 Uhr
RedEagle



Hi
Ich möchte eine *.cpp datei mit "vielen" Funktionen in ein anderes Pprogramm intengriern (wie ein Header-file)

Kann aber noch keine Header-files proggen und möchte deshalb die *.cpp datei einbinden

z.b.


C++:
//funktion.cpp\\

int funktion(int var1)
{
var1 += 100;
return (var1);
}




C++:
#include <funktion.cpp> //oder so···
//...


--
MFG RedEagle

Dieser Post wurde am 10.01.2004 um 10:06 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
10.01.2004, 10:09 Uhr
(un)wissender
Niveauwart


Würde ich nicht so machne, du kannst aber alles in das .hpp File schreiben und es dann includieren, macht nicht mehr arbeit und ist nicht schwieriger als deine jetzige Lösung, aber dann Standardkonform.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
10.01.2004, 10:38 Uhr
virtual
Sexiest Bit alive
(Operator)


Was ist denn Dein Problem mit Header Files?
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
10.01.2004, 10:42 Uhr
RedEagle



~weiß nicht wie die aufgebaut sind
~weiß nicht wie ich selber welche schreibe

gibts vieleicht ne I.-seite wo sowas drinsteht (am besten in deutsch)

ps
wenn ich das als *.hpp abspeicher, brauch ich dann ne "int main"???
--
MFG RedEagle

Dieser Post wurde am 10.01.2004 um 10:43 Uhr von RedEagle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
10.01.2004, 10:45 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Im Prinzip kannst du in deine Headerdatei reinschreiben was du willst.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
10.01.2004, 10:50 Uhr
erpelqueen
Entlein


hä?
Man, du schreibst das selbe einfach in ne header, und schreibst dann in deiner cpp:

C++:
#include "header.h"//""setzen, weil sie im selben Ordner sind


Beispiel für die Header:

C++:
#include <iostream.h>
#include <math.h>
#include <windows.h>
.....Funktionen, etc.



Alles Klar?
--
TSchöööööööö ,
How dy How, Ranger Joe
--------------------------------------
www.erpelstore.de.vu
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
10.01.2004, 11:10 Uhr
(un)wissender
Niveauwart


Versuch mal einfach deine xxx.cpp-Dateien umzubennen in xxx.hpp, schon passt es. Da ist überhaup kein Haken, brachst dann nur die Datei (muss .cpp oder cc, ... sein) zu kompilieren, in der du #include "xxx.hpp" stehen hast.
Normalerweise trennt man Prototypen und Implementierung (nicht bei templates oder inline-Funktionen), aber du kannst es erstmal so machen.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
10.01.2004, 12:10 Uhr
kronos
Quotenfisch
(Operator)


in der regel schreibt man in den header nur die prototypen der zu exportierenden funktionen, also von denen, die von anderen files verwendet werden sollen.
in deinem beispiel:

C++:
// funktion.hpp
int funktion(int);


das war's.
diesen header inkludierst du dann in deine funktion.cpp und in alle files, die funktionen aus funktion.cpp verwenden. dann mussst du die files nur noch zusammenlinken.
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
10.01.2004, 12:14 Uhr
RedEagle



Danke, ich werds mal versuchen
--
MFG RedEagle
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
10.01.2004, 14:58 Uhr
virtual
Sexiest Bit alive
(Operator)


Die Aussage, man könne in einen Header reinschreiben was man will, ist so leider nicht ganz richtig. Generell darf in einem Header stets nur die Deklaration, niemals die Definition stehen, weil man sonst in das Problem doppelt definitierter Symbole reinläuft.
Eine Deklaration ist eine Bekanntmachung: die sagt, daß es einen bestimmten Namen gibt (Funktionsnamen, Variablennamen), der einen bestimmten zugeordneten typen hat.
Eine Definition ist hingeben eine Zuordnung von einem Namen (und Typen) zu einem Speicherbereich (der implizit belegt wird). Jede Definition ist implizit eine Deklaration, nicht jedoch umgekehrt.
Dieser Code:

C++:
void f()
{
...
}


ist bespielsweise eine Definition. Sie sagt dem Compiler: "Bitte belege Speicher, in dem der Code, der zwischen den geschweiften Klammern steht reinpasst und nenne diesen Speicherbereich "f". Ich möchte Später den Code einfach mit dem namen "f" aufrufen können."
Eine Deklaration wäre das hier:

C++:
void f();


Sie sagt: Das gibt es irgendwo eine Funktion namens "f". Lieber Compiler, kümmer dich selbst drum, wo Du sie im Speicher findest; belege aber auf gar keinen Fall Speicher dafür.
Bei variablen sieht eine Definition so aus:

C++:
int x; // Definition für x, x ist Speicher, in dem man ein int unterbringen kann


eine Deklaration hingegen so:

C++:
extern int x; // Deklaration für x: es gibt irgendwo ein x, wo ein int reinpasst


Damit man etwas compileren kann, genügt die Deklaration für die verwendeten Namen; allerdings benötigt der Linker später dann auch die Definition.
Der Sinn von Deklarationen ist vor allem, daß man damit Module vorkompilieren kann (zB in Libraries) und einfach einen Header mitliefert, der dem Compiler dann sagt: diese Namen gibt es irgendwo. Die Library wird dann vom Linker verwendet, um die Definitionen zu finden.

Ein Header darf wie gesagt nur Deklarationen enthalten. Tut man da eine Definition rein, dann kann es passieren, daß - vor allem bei mehreren SourceDateien - man plötzlich zwei definitionen zu ein und demselben Namen hat (auch enn die Definitionen identisch sind: ist nicht erlaubt, in C/C++ herscht die "One-Definition-Rule").
Beherzigt man, daß man in Headern nur Deklarationen benutzen darf, hat man schon 90% Richtig gemacht. Eine weitere Sache sind die sog. "Includeguards", die die übrigen 10% ausmachen. Ein Includeguard ist einfach ein Mechanismus, der mehrmaliges Includieren von Headern vermeidet. Sie sind unbedingt notwendig, wenn man zyklische Abh. zwischen zwei Headern hat; sie sind aber auch sinnvoll, um den Source schneller compilierebar zu machen. Üblicherweise sehen Header so aus:

C++:
#ifndef HEADER_H_INCLUDED
#define HEADER_H_INCLUDED

// your stuff goes here

#endif


(Dabei sollte "HEADER_H_INCLUDED" pro header Datei anders heissen). Diese Anweisung verhindern, daß die Zeile "// yout stuff goes here" mehrmals vom Compiler konsumiert wird.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: