Konstruktor/Destruktor in Klasse ...
-
Hi !
Ich hab da irgendwie ein problem mit meiner Klasse bzw mit der
initialisierung eines Konstruktors und eines Destruktors.
Scheint so als ob ich das irgenwie nicht verstanden hätte ....
Hier ist der Code von der meiner function.h ...class Temperatur { private: double waerme; public: leseC(); // Konstruktor ~leseC(); // Destruktor leseF(); ~leseF(); double leseC(void); double leseF(void); void speicherC(void); void speicherF(void); };
Und hier die mein.cpp
#include <iostream.h> #include <math.h> #include <conio.h> #include <col_iostream.h> #include <colorconsole.h> #include <time.h> #include "function.h" using namespace std; Functions::leseC() { <<<----ab hier wird es Falsch .... } Functions::speicherC(){ <<<<---- .... } Funktions::speicherF(){ <<<<---- .... } Functions::leseF() { <<<<---- .... } template <typename T> void eingabe( T& x ) { cout << "Input: "; cin >> x; } template <typename T> void ausgabe ( const T x ) { cout << "Output: "; cout << x; } int main(int argc, char *argv[ ]) { // Variablen Deklarationen float fzahl1,fzahl2,wzahl,pzahl; int dzahl1,dzahl2,ijahr,wahl; double dErgebnis; char buffer[10]; long double grad, bogenmass, x; // Constanten initialisierung const long double PI = 3.1415926535897932384626433832795;
Ich weiß jetzt echt warum das nicht geht .... hab ich irgenwas vergessen?
THX für alle antworten!
-
was erwartest du dir von den Methoden Temperatur::~leseC() und Temperatur::~leseF() ?
-
Hi!
Eigendlich nichts .... hab aber gelesen das der Einsatz von
Konstruktoren/Destruktoren die Sicherheit der Klasse verbessert.
Aber ich glaube ich sehe meinen Fehler ... diese Funktionen haben nur die Aufgabe, Klassen! bei ihrer Erzeugung zu initialisieren und bei ihrer Zerstörung aufzuräumen.
Ich habe versucht dies bei Funktionen anzuwenden .... oder geht dies auch ?
HELP!???THX für alle antworten
PS:
Hab den Abschnitt in der main.cpp
jetzt wie folgt abgeändert:#include <iostream.h> #include <math.h> #include <conio.h> #include <col_iostream.h> #include <colorconsole.h> #include <time.h> #include "function.h" using namespace std; Temperatur::leseC() { } Temperatur::~leseC(){ } Temperatur::speicherC(){ } Temperatur::~speicherC(){ } Temperatur::speicherF(){ } Temperatur::~speicherF(){ } Temperatur::leseF() { } template <typename T> void eingabe( T& x ) { cout << "Input: "; cin >> x; } ..... .....
aber immer noch total falsch ....
-
Die Konstruktoren/Destruktoren einer Klasse müssen so heissen wie der Klassenname auch, also:
class KlassenName { public: KlassenName(); //<-- Konstruktor KlassenName(int i); //<-- Konstruktor ~KlassenName(); //<-- Destruktor private: }
In deinem Fall also:
class Temperatur { private: double waerme; public: Temperatur(); // Konstruktor Temperatur(int i); // Konstruktor ~Temperatur(); // Destruktor double leseC(void); double leseF(void); void speicherC(void); void speicherF(void); };
Mehrere Destruktoren geht nicht, woher soll er wissen welchen er aufrufen soll? Das ganze wird ja implizit gemacht.
Bei Konstuktoren hast du die Möglichkeit verschiedene mit unterschiedlichen Parametern zu schreiben, dann so wie ich das oben gemacht habe.Gruß
Entyl Sa
-
hi,
geht IMHO nicht. Aber die Funktionen Temperatur::leseC() sollte funzen. Der Fehler wird sicher nur durch die Funktionen mit der ~ verursacht.Tschau Gartenzwerg
-
vielen Dank !
Jetzt hats klick gemachtTHX !