Fehler mein Ausführen des Programmes
-
Ne das kann nicht der Fehler sein,
ich sehe in der Klasse Elektro die methode..
Robtschick will wahrscheinlich eine dynamische verwaltung die bei ihm
anscheinend fehlgeschlagen ist.aber den fehler seh ich jetz auch nicht
-
Sorry, meinte auch nicht getSpeicher sondern get/setGrafikkarte und -Wlan.
-
ja das stimmt schon ,
aber deiner meinung nach soll ich alle elemente in die basisklasse einbinden,,
das wollte ich aber vermeiden, weil jede klasse seine eigenen elemente hat. + basisklassewie soll ich das jetzt machen ?
-
Stimmt, du warst der letzt mit diesem Problem
Und du solltest dir immer noch die Antworten zu deinem letzten Thread durchlesen.
-
also ich sehe in deiner basis.h nur funktions deklarationen,aber keine definitionen...naja vielleicht liegts daran das ich von c++ keine ahnung hab.
-
c++newb schrieb:
naja vielleicht liegts daran das ich von c++ keine ahnung hab.
Das wird's sein
(scnr)
Die Definitionen stehen üblicherweise nicht im Header, sondern in einer dazugehörigen CPP-Datei, die unabhängig vom Hauptprogramm compiliert und anschließend eingelinkt wird.
-
CStoll schrieb:
c++newb schrieb:
naja vielleicht liegts daran das ich von c++ keine ahnung hab.
Das wird's sein
(scnr)
Die Definitionen stehen üblicherweise nicht im Header, sondern in einer dazugehörigen CPP-Datei, die unabhängig vom Hauptprogramm compiliert und anschließend eingelinkt wird.dann würde ich gerne die cpp datei sehen...die paar funktionen kann man doch auch inline proggen ist dann auch etwas schneller.aber wie du schon sagtest ich hab ja null ahnung...
-
Nunja, für das Problem von "Robtschick" ist es auch unerheblich, wie die Funktionen implementiert sind - wichtig ist nur, daß und wo (bzw. wo nicht) sie exisistieren.
c++newb schrieb:
aber wie du schon sagtest ich hab ja null ahnung...
das hast DU selber von dir behauptet

-
//basis.h #include <iostream> #include <string> using namespace std; /*---------------------------------------Elektro-----------------------------------*/ class elektro { public: elektro(); ~elektro(); virtual float getSpeicher(); virtual void setSpeicher(float arbeit); void display(); private: float speicher; }; /*---------------------------------------Computer-----------------------------------*/ class computer: public elektro { public: computer(); ~computer(); virtual float getGrafikkarte(); virtual void setGrafikkarte(float grafik); void display(); private: float grafikkarte; }; /*---------------------------------------Laptop-----------------------------------*/ class laptop: public elektro { public: laptop(); ~laptop(); int getWlan(); void setWlan(int w); void display(); private: int wlan; };//basis.cpp #include "basis.h" // KLASSE ELEKTRO float elektro::getSpeicher() { return speicher; } void elektro::setSpeicher(float arbeit) { speicher=arbeit; } void elektro::display() { cout <<" Der Arbeitsspeicher betraegt " <<speicher<<endl; } // KLASSE COMPUTER float computer::getGrafikkarte() { return grafikkarte; } void computer::setGrafikkarte(float grafik) { grafikkarte=grafik; } void computer::display() { cout <<" Der Grafikspeicher betraegt " <<grafikkarte; } // KLASSE LAPTOP int laptop::getWlan() { return wlan; } void laptop::setWlan(int w) { wlan=w; } void laptop:: display() { cout <<" Die W-Lan Geschwindigkeit betraegt:" <<wlan; }//main.cpp #include "basis.h" #include <iostream> #include <string> #include <windows.h> using namespace std; int auswahl; int main() { int w; float grafik, arbeit; string neustart; elektro *zeiger; cout <<"Bitte wahlen sie aus Elektro (1) Computer (2) Laptop (3):"; cin>>auswahl; cout <<"Wie viel Arbeitsspeicher:" ; cin >>arbeit; zeiger->setSpeicher(arbeit); zeiger->display(); if(auswahl==2) { do{ cout <<"Wie viel Grafikspeicher:" ; cin >>grafik; zeiger->setSpeicher(arbeit); zeiger->setGrafikkarte(grafik); zeiger->display(); }while (grafik <1 && grafik >=256); } if( auswahl==3) { do{ cout <<"Wie viele W-Lan kanaele:" ; cin >>w; zeiger->display(); zeiger->setSpeicher(arbeit); zeiger->setWlan(w); }while (w <1 && w >=256); } cout <<" neustart Fragezeichen ja (j) nein (n) " <<endl; cin >> neustart; if (neustart=="j") { system("cls"); main(); } else{ return 0; } return 0; }--------------------Konfiguration: elektro - Win32 Debug--------------------
Kompilierung läuft...
main.cpp
C:\Dokumente und Einstellungen\Robtschick\Desktop\C\Elektro\elektro\main.cpp(45) : error C2039: 'setGrafikkarte' : Ist kein Element von 'elektro'
c:\dokumente und einstellungen\robtschick\desktop\c\elektro\elektro\basis.h(8) : Siehe Deklaration von 'elektro'
C:\Dokumente und Einstellungen\Robtschick\Desktop\C\Elektro\elektro\main.cpp(59) : error C2039: 'setWlan' : Ist kein Element von 'elektro'
c:\dokumente und einstellungen\robtschick\desktop\c\elektro\elektro\basis.h(8) : Siehe Deklaration von 'elektro'
Fehler beim Ausführen von cl.exe.elektro.exe - 2 Fehler, 0 Warnung(en)
--------------------------------------------------------------------------------ICH BRAUCHE ECHT HILFE:: UNDZWAR SOOOO das ich es nur einfüge und dann selbst verstehen muss was es damit aufsich hat... das mit dem dynamic_cast hab ich versucht der zeigt mir weitere fehler ..... irgendwas mit poly... irgendwas..
Schreib mir einer mal bitte das richtige Script.... ICH VERZWEIFEL SO LANGSAM

-
Hallo
die Fehlermeldungen sind doch eindeutig.
Du kannst über einen Zeiger vom Typ elektro nicht auf Elemente zugreifen, die erst der Klasse computer angehören.Desweiteren hast du zwar einen Zeiger vom Typ elektro, du erstellst aber nirgends eine gültige Instanz, nachdem der User die Auswahl getroffen hat.
bis bald
akari
-
GAR NICHT WEITERGEHOLFEN.....................
ICH KOMME NICHT WEITER MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN !!!!
ICH BIN DOOOOOOOOOOF deshalb so helfen
das ich es einfach einfügen sollll............ maannnnnnnnnnnn
BITTTTTTE ICH KOMME HIER NICHT KLAR ::: !
-
HEY HO,
das würde mich aber auch interessieren, wie man das machen sollten.
Könnte es jemand evtl. richtig stellen?
-
#include <string.h> #include <iostream.h> #include "elektro.h" int main() { int auswahl; float geschw; int grafikram; elektro *e_zeiger=new computer; elektro *e_zeiger2=new elektro; computer *c_zeiger=dynamic_cast<elektro*>(e_zeiger); cout << "Waehle zwischen 1 und 2: " << endl; cin >> auswahl; switch(auswahl) { case 1:e_zeiger = new elektro; cout << "Gib Geschw ein: " << endl; cin >> geschw; e_zeiger->setGeschwindigkeit(geschw); cout << "Geschwindigkeit ist " << e_zeiger->getGeschwindigkeit() <<endl; break; case 2:c_zeiger = new computer; cout << "Grafikspeischer eingeben " << endl; cin >> grafikram; c_zeiger->setGrafikspeicher(grafikram); cout << "Grafikspeicher " << c_zeiger->getGrafikspeicher() << endl; } return 0; }Ich habe das jetzt so gemacht , aber der sagt mir aus,,, das ich immer noch irgenwdelche fehler habeeeeeeeeeeeeeeeeeeeeeeeeeeeee..
son scheiß
--------------------Konfiguration: elektro - Win32 Debug--------------------
Kompilierung läuft...
main.cpp
C:\Dokumente und Einstellungen\Robtschick\Desktop\uebung\elektro\main.cpp(15) : warning C4541: 'dynamic_cast' fuer polymorphen Typ 'class elektro' mit /GR- verwendet; unvorhersehbares Verhalten moeglich
C:\Dokumente und Einstellungen\Robtschick\Desktop\uebung\elektro\main.cpp(15) : error C2440: 'initializing' : 'class elektro *' kann nicht in 'class computer *' konvertiert werden
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
Fehler beim Ausführen von cl.exe.elektro.exe - 1 Fehler, 1 Warnung(en)
BITTE SO HELFEN DAS ICH ES EINSETZTEN KANNN PLS !!!!
-
#include <string.h> #include <iostream.h> #include "elektro.h" int main() { int auswahl; float geschw; int grafikram; elektro *e_zeiger=new computer; elektro *e_zeiger2=new elektro; computer *c_zeiger=dynamic_cast<elektro*>(e_zeiger); cout << "Waehle zwischen 1 und 2: " << endl; cin >> auswahl; switch(auswahl) { case 1:e_zeiger = new elektro; cout << "Gib Geschw ein: " << endl; cin >> geschw; e_zeiger->setGeschwindigkeit(geschw); cout << "Geschwindigkeit ist " << e_zeiger->getGeschwindigkeit() <<endl; break; case 2:c_zeiger = new computer; cout << "Grafikspeischer eingeben " << endl; cin >> grafikram; c_zeiger->setGrafikspeicher(grafikram); cout << "Grafikspeicher " << c_zeiger->getGrafikspeicher() << endl; } return 0; }Ich habe das jetzt so gemacht , aber der sagt mir aus,,, das ich immer noch irgenwdelche fehler habeeeeeeeeeeeeeeeeeeeeeeeeeeeee..
son scheiß
--------------------Konfiguration: elektro - Win32 Debug--------------------
Kompilierung läuft...
main.cpp
C:\Dokumente und Einstellungen\Robtschick\Desktop\uebung\elektro\main.cpp(15) : warning C4541: 'dynamic_cast' fuer polymorphen Typ 'class elektro' mit /GR- verwendet; unvorhersehbares Verhalten moeglich
C:\Dokumente und Einstellungen\Robtschick\Desktop\uebung\elektro\main.cpp(15) : error C2440: 'initializing' : 'class elektro *' kann nicht in 'class computer *' konvertiert werden
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat
Fehler beim Ausführen von cl.exe.elektro.exe - 1 Fehler, 1 Warnung(en)
BITTE SO HELFEN DAS ICH ES EINSETZTEN KANNN PLS !!!!
-
Kann mir nicht jemand per icq helfen oder so ???
146289675
-
Robtschick schrieb:
C:\Dokumente und Einstellungen\Robtschick\Desktop\uebung\elektro\main.cpp(15) : error C2440: 'initializing' : 'class elektro *' kann nicht in 'class computer *' konvertiert werden
Die Typen, auf die verwiesen wird, sind nicht verwandt; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder FunktionsformatDa steht doch eh schon was du machen sollst. Lies dir mal ein Grundlagen Turorial zu OOP durch...
BITTE SO HELFEN DAS ICH ES EINSETZTEN KANNN PLS !!!!
Und der Sinn des Ganzen?
-
DU schlaukopf , sag es du mir doch mal biiiiiiiiiiiiiiittttte,
ich gehe hier noch kaputt mit diesem behinderten missgeburten c++ programm
ich hasse das wie die hölle und ihr quelt mich hier.........verate mir doch mein fehler.. oder seit ihr genauso bekloptt wie ich ?!
ICH VERSTEHE DIESEN UNSINN VON PROGRAMIERUNG NICHT....................
also schreib mir doch jemand mal eine lösung ...............
-
Wenn du es wie die Hölle hast warum lässt du es nicht einfach?
Und ich bin mir sicher dass dir jetzt mehr Leute helfen wollen. Und wir wollen helfen, aber du musst dich schon einbringen.
-
Ich freue mich ja auch auf jede antwort, aber ich verstehe das einfach nicht, weil die das nicht in der schule hatten,
und ich dieses dynamic_cast das erste mal gehört habe.. ich habe auch alles gelsen darüber
es gibt eins das ist das von unterklassen zu oberklassen von oberklassen zu unterklasse vererben... aber man sollte es im seltenen falle tun... aber keiner sagt mir eine andere möglichkeit.. wie mache ich es denn mit diesen virtuellen dingern ?