Konstruktor < C/C++ < Programmiersprachen < Praxis < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 12:53 Mi 25.03.2009 | Autor: | tynia |
Hallo. Ich habe hier einen Auszug aus einer Header-Datei die eine Klasse Matrizen definiert. Dazu habe ich eine Frage.
class Matrizen
{
protected:
int n; //Matrix ist eine nxm Matrix
int m;
double values [10][10];
public:
Matrizen () {} //Hier meine Frage:Erzeugt hier der Konstruktor ein Objekt?
void init (int Zeilen,int Spalten);
void show_Matrix(); // Ausgabe einer Matrix
void set_Matrix();
}
usw.
Danke schonmal
|
|
|
|
Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
> Hallo. Ich habe hier einen Auszug aus einer Header-Datei
> die eine Klasse Matrizen definiert. Dazu habe ich eine
> Frage.
>
> class Matrizen
> $\{$
> protected:
>
> int n; //Matrix ist eine nxm Matrix
> int m;
> double values [10][10];
>
> public:
>
> Matrizen () $\{\}$ //Hier meine Frage:Erzeugt hier der
> Konstruktor ein Objekt?
Nein, es ist niemals ein Konstruktor, der selbst ein Objekt seiner Klasse "erzeugt". Was geschieht ist vielmehr folgendes: Wenn ein Anwendungsprogramm ein Objekt diese Klasse erzeugen will, im Extremfall mit einer Anweisung der Form meineMatrizen = new Matrizen();Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)
, dann alloziert das Runtime-System zuerst den für dieses Objekt nötigen Speicher und ruft dann systematisch in der Klassenhierarchie absteigend Konstruktoren auf, die diesen Speicher geeignet zu initialisieren haben. Der obige Konstruktor der Klasse Matrizen wäre dann einfach der letzte dieser Konstruktoren (die eigentlich genauer Initialisatoren genannt werden müssten, aber die Tradition will es halt anders...)
>
> void init (int Zeilen,int Spalten);
>
> void show_Matrix(); // Ausgabe einer Matrix
> void set_Matrix();
> $\}$
> usw.
>
|
|
|
|