[gelöst]Projekt mit mehreren Dateien erstellen?
-
Wohl eher umgekehrt..
-
drakon schrieb:
Wohl eher umgekehrt..
Nö. Er hat 2 private floats breite und laenge, und zwei public floats a uns b. Da wollte er jetzt im Konstruktor die beiden public floats den private floats zuweisen

-
Hmm,ja, macht sinn. Wie soll sonst a nach breite kommen?
Allerdings sagt er jetzt:
"Typ qualifier 'flaeche' musst be a struct or class"
-
franz schrieb:
drakon schrieb:
Wohl eher umgekehrt..
Nö. Er hat 2 private floats breite und laenge, und zwei public floats a uns b. Da wollte er jetzt im Konstruktor die beiden public floats den private floats zuweisen

Aso. Ich habe nur deinen Quellcode angeschaut.. Und da sollte es, wenn umgekehrt sein.. Also so:
flaeche :: flaeche( float breite, float laenge ) { a = breite; b = laenge; }@Andi S :
Zeig doch bitte mal den Code, den du jetzt hast. Ich weiss nicht so genau, was du überhaupt machen willst..
-
So, ich hab das jetzt mal umgestellt.
Header:
#ifndef wechsel_h__ #define wechsel_h__ class flaeche { private: float breite,laenge; public: float a; float b; flaeche(); float area(float,float); }; #endifDeklaration:
#include "wechsel.h" flaeche :: flaeche() { breite=a; laenge=b; }; float flaeche :: area(float breite, float laenge) { return (breite*laenge); }main:
#include <iostream.h> #include <conio.h> #include <stdio.h> #include "wechsel.h" //Part 3 void main(void) { flaeche f1; clrscr(); cout<<endl<<"Bitte geben sie die Breite ein: "; cin>>f1.a; cout<<endl<<"Bitte geben sie die Laenge ein: "; cin>>f1.b; cout<<endl<<"Die Fl„che betr„gt: " <<f1.area(f1.a,f1.b); getchar(); }Der Linker fängt auch an zu arbeiten, schafft es aber nicht ganz zur exe weil:
Compiling Wechsel.cpp. Compiling Wechs.cpp. Linking 1.exe. Linker warning: No Modul definition files specified: using defaults. Linker error: _main defined in module Wechsel.cpp(das ist die mit der main drin) is duplicated in module Wechsel.cppSo wie es aussieht steht nur noch etwas "doppeltes" zwischen mir und der exe. Mal ganz abgesehen von irgendwelchen Definitionsdateien, was immer auch damit gemeint ist.
Vorschläge?
Edith:
Ja, das Programm bringt als Ergebnis 0 raus weil flaeche() keine Parameter hat.
-
drakon schrieb:
@Andi S :
Zeig doch bitte mal den Code, den du jetzt hast. Ich weiss nicht so genau, was du überhaupt machen willst..Ich möchte einfach das script, welches ich im Anfangspost gepostet habe, auch drei dateien aufteilen. Zwecks Projekt, was ist eine Haederdatei, was ist eine Objektdatei ect.pp.
Das Anfangsscript funktioniert in einer Datei geschrieben einwandfrei. Ich kann sogar hin gehen und bei "float area(float breite, float laenge)" ändern in "char area(float breite, float laenge)" und bekomme dann als Ausgabe die graphische Umsetzung des ASCII-Codes. Also wenn ich für a 7,001 eingebe und für b 14,001, dann kommt als Ausgabe "b" da ja 98,00irgendwas im ASCII-Code 98 ist und das ist nun mal der Buchstabe klein-b.
Das heißt, es funktioniert alles. Nur wenn ich das Script auf Header, Deklaration und Main aufteilen will funzt nix mehr

-
drakon schrieb:
@Andi S :
Zeig doch bitte mal den Code, den du jetzt hast. Ich weiss nicht so genau, was du überhaupt machen willst..So, nachdem ich den Fehler mit dem duplicated gefunden habe hier mein letzter noch offener Fehler:
Er sagt mir dass ich in meiner Haederdatei in Zeile 4 einen
"Declaration syntax error" habe
Haederdatei:
#ifndef wechsel2_h__ #define wechsel2_h__ class flaeche { private: float breite,laenge; public: float a; float b; flaeche(); float area(float, float); }; #endifDeklarationsdatei wechs.cpp:
#include "wechsel2.h" #include <iostream.h> flaeche :: flaeche() { breite=a; laenge=b; } float flaeche :: area(float breite, float laenge) { return (breite*laenge); }Und die main:
#include "wechsel2.h" #include <iostream.h> #include <conio.h> #include <stdio.h> //Part 3 void main(void) { flaeche f1; clrscr(); cout<<endl<<"Bitte geben sie die Breite ein: "; cin>>f1.a; cout<<endl<<"Bitte geben sie die Laenge ein: "; cin>>f1.b; cout<<endl<<"Die Fl„che betr„gt: " <<f1.area(f1.a,f1.b); getchar(); }Wenn man das mit dem Script aus dem Eingangspost vergleicht sieht man dass an der Grundsyntax nichts verändert ist. Und das Eingangsscript hat in einer Datei gefunzt. Was also gibt es da jetzt an der Klassendeklaration in der Haederdatei rumzumotzen? Was ist da falsch?
Edith:
So, es ist mit der Hilfe von hier alles gelöst. Der letzte zu bekämpfende Fehler war, dass man die *h beim Borland 3.1 nicht mit in das Projekt nehmen kann sondern nur im selben Ordner plazieren muss. Danke für die mühen aller.
Ergänzende informationen in den Nebenthreads
http://www.c-plusplus.net/forum/viewtopic-var-t-is-234809.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-234795.html
-
Dravere schrieb:
<iostream.h> -> Kein C++ Standardheader
http://www.cplusplus.com/reference/
sondern?
-
kingcools2 schrieb:
http://www.cplusplus.com/reference/
sondern?
Ich kenne diese Referenz sehr gut, sie steht in meiner Signatur :p
Und schau es dir mal genau an. Es heisst<iostream>ohne ".h". Gilt für alle Standardheader von C++, sie enden nie mit einem ".h".Grüssli
-
jo hab ich dann auch entdeckt
danke trotzdem