Autor
|
Thema: brauche mal ein c++ beispiel
|
requital
   
Usernummer # 4539
|
verfasst
hallo da ich mich leider mit c++ nicht sonderlich auskenne, bräuchte ich mal ein kleines beispiel programm.
es sollte eine zahl an eine klasse übergeben. diese klasse soll dann die zahl verdoppeln und ausgeben.
danke schonmal im voraus!!! [ 20.09.2003, 17:09: Beitrag editiert von: requital ]
Aus: Wiesbaden | Registriert: Dec 2001
| IP: [logged]
| |
|
|
smpx7
Bademeister
Usernummer # 3909
|
verfasst
Ich kann Dir da auch net sonderlich weiterhelfen, aber ich hab da nen Plan
1. Programm Erwartet die Eingabe einer Zahl nach dieser Eingabe ruft es das Programm2 auf (glaube Befehl war 'system') 2. Programm liest mit hilfe von args[1] die als Parameter übergebene Zahl, multipliziert sie mit 2 und gibt sie aus.
Ich glaub ich könnt das sogar gleich mal programmieren
Aus: Leipzig | Registriert: Oct 2001
| IP: [logged]
| |
|
|
requital
   
Usernummer # 4539
|
verfasst
ja ne so wars eigentlich nicht gemeint. es sollte eine klasse dafür benutzen die zahl zu verdoppeln! hab mich da wohl nicht richtig ausgedrückt!
Aus: Wiesbaden | Registriert: Dec 2001
| IP: [logged]
| |
|
|
Tribal-Tec
   
Usernummer # 3904
|
verfasst
blöde frage vorweg: kann die klasse sonst nix, oder wird die dann noch erweitert, weil eine Klasse für ein solch "simples" Problem macht eigentlich wenig sinn.
Aus: Muc | Registriert: Oct 2001
| IP: [logged]
| |
|
|
Cymorris
   
Usernummer # 5951
|
verfasst
Hi, ich würde dir gern weiterhelfen, aber irgendwie versteh ich die Frage nicht ganz... Ne Klasse (Objektorientierung ?!) ist doch eigentlich ein "Bauplan" für einen Datensatz, mit Eigenschaften und Methoden... Ne Klasse an sich führt doch nichts aus ?!
Ich "lerne" C++ in der Berufsschule (Borland C++ Builder), und wir haben im ersten Jahr eigentlich nur Konsolenanwendungen programmiert, und im zweiten Jahr was mit Visual C++ gemacht. Aber so ein Beispiel wie deins ist nicht vorgekommen. Falls ich mit was anderem dienen kann, kannst mir ja ne Mail schreiben.
Schönen Abend.
Aus: Würzburg | Registriert: May 2002
| IP: [logged]
| |
|
|
smpx7
Bademeister
Usernummer # 3909
|
verfasst
Genau das mit der Klasse stört mich auch ein wenig. Das bäste wäre da eine Funktion, damit könnte ich dienen
Aus: Leipzig | Registriert: Oct 2001
| IP: [logged]
| |
|
|
nicogrubert
endlosrille
Usernummer # 1292
|
verfasst
warum eine klasse?
eine klasse beschreibt ein objekt und dessen attribute, methode etc.
ich denke, eine methode wäre das richtige, die (in Python) so aussieht:
ganz trivial:
def verdoppel(zahl): return zahl + 2
oder mit ein paar abfragen:
def verdoppel(zahl): if zahl: try: z = int(zahl) return z*2 except: return "%s ist keine Zahl." % z
cheers, nico
edit: okay, ist zwar nicht c++, aber das prinzip sollte klar sein. [ 21.09.2003, 10:21: Beitrag editiert von: nicogrubert ]
Aus: Zürich | Registriert: Nov 2000
| IP: [logged]
| |
|
|
Herr Minimal
     
Usernummer # 3603
|
verfasst
nico c++ nicht irengdwas include iostream //hier sollten spitze klammern stehen
class doubling { private: int zahl;
public: doubling(); ~doubling(); void double(int ~zahl) { zahl = 2*~zahl; cout "zwei spitze klammenr nach links" zahl;} } void main void { doubling d = new doubling(); //weiss net ob das so genau geht, hab zu lange java gehabt d.double(4); //jetzt sollte 8 ausgegeben werden }
Aus: Berlin | Registriert: Aug 2001
| IP: [logged]
| |
|
|
requital
   
Usernummer # 4539
|
verfasst
ich brauche halt ein main prog, welches eine methode in einer klasse aufruft. die verdoppel() methode in der klasse soll dann die zahl verdoppeln und ausgeben oder auch zurück ans main prog. geben.
unter java würde ichs natürlich selber hinbekommen, nur c++ ist mir noch fremd. als methode in einem prog würde ich's auch unter c++ hinbekommen. nur brauche ich ein programm welches aus zwei teilen besteht, die später zusammen gelinkt werden müssen.
ich brauche das beispiel um später daran den linkvorgang und relokation etc. zu erklären! dazu muss ich compilieren ohne zu linken, um an einem vorher nachher beispiel die vorgänge zu schildern. und javac hat eine solche option so weit ich weiß nit!
Bsp in java:
------------------------------ main.java ----------------------- .. .. doppel dop = new doppel(); //konstruktor erstellen
dop.verdoppel(2); //methode in klasse "doppel" aufrufen
.. .. ..
----------------------- doppel.class -------------------- ... ... ... public void doppel(int zahl){
zahl = zahl*2; System.out.println("Ergebniss: ",zahl);
} .. .. ------------------------------- so würde es in java aussehen nur ich brauche es halt in c++!!! schonmal dankeschön!!
Aus: Wiesbaden | Registriert: Dec 2001
| IP: [logged]
| |
|
|
Herr Minimal
     
Usernummer # 3603
|
verfasst
ja schau dir mein beispiel an .. das ist c++
//doppel.h
class doppel { private: int zahl; public: doppel(); ~doppel(); void verdoppel(int zahl); }
//doppel.cpp
doppel::doppel() { zahl = 0; }
doppel::~doppel() { }
void doppel::verdoppel(int ~zahl) { zahl = 2*~zahl; printf("Die zahl ist %d", zahl); }
//main.cpp
include doppel.h //in spitzen klammern
void main(void) { doppel d = new doppel(); d.verdoppel(4); //sollte eine 8 ausgeben }
Aus: Berlin | Registriert: Aug 2001
| IP: [logged]
| |
|
|
requital
   
Usernummer # 4539
|
verfasst
ok irgendwie kann ich jetzt nicht das komplette post editieren, der smile sollte eigentlich dieser hier sein . der andere sieht so nach auslachen aus ......so sollte es aber nicht gemeint sein!
aaahh vollkommen übersehen das sieht so aus als wäre es genau das was ich brauche!
Aus: Wiesbaden | Registriert: Dec 2001
| IP: [logged]
| |
|
|
Herr Minimal
     
Usernummer # 3603
|
verfasst
scjhau dir das editierte von mir nochmal an das ist so wie man es machen sollte.
Aus: Berlin | Registriert: Aug 2001
| IP: [logged]
| |
|
|
requital
   
Usernummer # 4539
|
verfasst
was soll die ~ immer bedeuten?
Aus: Wiesbaden | Registriert: Dec 2001
| IP: [logged]
| |
|
|
mik
   
Usernummer # 5095
|
verfasst
~ ist der Destruktor und ist im Prinzip das Gegenteil des Konstruktors.
Aus: Altendorf | Registriert: Feb 2002
| IP: [logged]
| |
|
|
smpx7
Bademeister
Usernummer # 3909
|
verfasst
Die ~ beschreiben den Destructor. Zu jedem Konstruktor gibt es einen Destructor.
Hier mal eine Erläuterung aus einem anderem Board kopiert (c-plusplus.de): Zitat:
Hallo, in der Objektwelt von C++ ist der Konstruktor der Anfang, der Schöpfer, die Funktion die einem Haufen Nichts das Leben einhaucht und es in ein frisches, eigenständiges, lebendiges und hoffentlich glückliches Objekt umwandelt. Das Leben eines Objekts beginnt mit dem Ablauf eines Konstruktors. Bevor also nicht ein Konstruktor abgelaufen ist, kann ein Objekt nicht verwendet werden. Ein Konstruktor schafft die Voraussetzungen um ein Objekt sinnvoll nutzen zu können. Hier werden Member initialisiert, Resourcen angeforder und was sonst noch alles nötig ist. Da es unterschiedliche sinnvolle Anfangswerte für ein Objekt geben kann, kann es für eine Klasse auch mehrere Konstruktoren geben.
Ein Destruktor ist das genaue Gegenteil vom Konstruktor. Er ist das Ende, der Tod, die Funktion, die ein lebendiges, eigenständiges Objekt nach (hoffentlich) verrichteter Arbeit zurück in ein Haufen Nichts verwandelt. Das Leben eines Objekts endet mit dem Aufruf des Destruktors. Hier werden Resourcen freigegeben und sonstige Aufräumarbeiten verrichtet. Für jede Klasse kann es nur genau einen Destruktor geben.
Aus: Leipzig | Registriert: Oct 2001
| IP: [logged]
| |
|
|
requital
   
Usernummer # 4539
|
verfasst
mmmm also ich hab jetzt dran rumprobiert, und ...........es läuft nicht! kannste nochmal den sourcecode posten, der bei dir funzt? und zwar mit jedem punkt und komma?
das wäre echt nett!
Aus: Wiesbaden | Registriert: Dec 2001
| IP: [logged]
| |
|
|
Herr Minimal
     
Usernummer # 3603
|
verfasst
jo ok. muss ich dann heute abend mal machen.. bin noch in der uni.
Aus: Berlin | Registriert: Aug 2001
| IP: [logged]
| |
|
|
Herr Minimal
     
Usernummer # 3603
|
verfasst
//main.cpp
#include #include "verdoppel.h" using namespace std;
int main (int argc, const char * argv[]) { verdoppel *v = new verdoppel(); v->calculate(4); return 0; }
//verdoppel.h
using namespace std;
class verdoppel { private: int zahl; public: verdoppel(); ~verdoppel(); void calculate(int z); };
//verdoppel.cpp
#include #include "verdoppel.h" using namespace std;
verdoppel::verdoppel() { zahl = 0; }
verdoppel::~verdoppel() {
}
void verdoppel::calculate(int z) { zahl = 2*z; cout << "zahl = " << zahl; }
hinter dem leeren include steht ein iostream in einfachen spitzen klammern. danke html sieht mans hier nicht. ansonsten geht der code so. habs mal eingehackt.
Aus: Berlin | Registriert: Aug 2001
| IP: [logged]
| |
|
|
shadow
   
Usernummer # 1472
|
verfasst
Hab mal versucht es so einfach wie möglich und ohne Verschachtelungen zu schreiben. Sorry für die unmöglichen Classen-, Variablen- und Methodennamen. Mir ist auf die Schnelle leider nix besseres eingefallen *g*
#include
class ClassVerdopplung { private: int Ergebnis;
public: void verdoppeln(int Zahl);
};
void ClassVerdopplung::verdoppeln(int Zahl) { Ergebnis = Zahl * 2; printf("Zahl: %i Ergebnis: %i ", Zahl, Ergebnis); }
void main() { ClassVerdopplung Verdopplung; int zahl;
zahl = 4;
Verdopplung.verdoppeln(zahl); }
Aus: D, 86673 Bergheim | Registriert: Dec 2000
| IP: [logged]
| |
|
|