Willkommen |
|
myGully |
|
Links |
|
Forum |
|
|
|
|
24.01.13, 19:37
|
#1
|
Anfänger
Registriert seit: Feb 2009
Beiträge: 10
Bedankt: 1
|
Konstruktor
Hallo Community,
ich bräuchte bitte eure Hilfe. Ich bin gerade dabei C++ zu lernen und nun habe ich mein erstes Problem. Ich verstehe leider nicht genau, wofür Konstruktoren sind. Ich habe mir schon so vieles durchgelesen und angeschaut aber eine einfache simple Erklärung oder ein Beispiel habe ich nicht gefunden.
Ich bitte euch kann mir einer dieses erklären, vllt. mit einem kleinen Programm eine Ausgabe oder so in der art.
Danke im voraus
|
|
|
24.01.13, 20:01
|
#2
|
Erfahrenes Mitglied
Registriert seit: Jul 2010
Beiträge: 493
Bedankt: 236
|
Der Konstruktor ist die Methode die aufgerufen wird, wenn von einem Objekt eine neue Instanz angelegt wird.
Sie heißt immer genauso wie das Objekt selbst und gibt die angelegte Instanz zurück.
|
|
|
24.01.13, 20:03
|
#3
|
Hinter dir!
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
|
Vielleicht hilft dir ja das hier: [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
|
|
|
25.01.13, 17:14
|
#4
|
Erfahrenes Mitglied
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
|
Die eigentliche Frage ist doch ... wie weit hast du das Konzept hinter Objektorientierter Programmierung bereits verstanden? Weißt du was ein Objekt überhaupt ist?
Grundsätzlich ist es als eine Methode gedacht, die automatisch zum initalisieren eines Objekts aufgerufen wird. Wie der Name es schon sagt, ist diese Methode der Erzeuger/Konstruktor des Objekts. Wenn wir also z.B. von dem Objekt Auto sprechen, dann ist diese Methode dazu da, um das Auto zu bauen (Lackieren, Reifen montieren, Türen montieren, ...).
Wenn ich eine Bestimmte anzahl von diesen Methoden festlege, kann ich so festlegen, dass nur bestimmte Arten eines Objekts erstellt werden können (z.B. nur Autos mit 4 Rädern und nur mit einer bestimmten Auswahl an Farben).
|
|
|
25.01.13, 22:41
|
#5
|
Anfänger
Registriert seit: Dec 2009
Beiträge: 3
Bedankt: 0
|
Ein kleines Beispiel:
Code:
// tv.h
#ifndef TV_H__
#define TV_H__
class TV
{
public:
void setStation(int station);
int getStation();
TV();
TV(int station);
private:
int station;
};
#endif
______________________________________________________________________________________
//tv.cpp
#include <iostream>
#include "tv.h"
using namespace std;
TV::TV(){
station = 1;
}
int TV::getStation()
{
return this->station;
}
void TV::setStation(int station)
{
this->station = station;
}
TV::TV(int station){
if (station < 100){
this->station = station;
}
else {
this->station = 1;
}
}
int main(){
TV myTV;
cout << myTV.getStation() << endl;
myTV.setStation(10);
cout << myTV.getStation() << endl;
TV *myTV2 = new TV(111);
cout << myTV2->getStation() << endl;
delete myTV2;
return 0;
}
};
(Programm macht nicht viel, soll nur als Bsp dienen)
Beispielsweise wird hier im Konstruktor tv::tv() eine Variable initialisiert.
Natürlich kann man hier noch mehr machen wie z.B. Speicher reservieren für ein Array. Dann braucht man auch einen Destruktor, welcher diesen zuvor reservierten Speicher wieder freigibt.
Ich bin selber noch nicht so fit in C++, und versuche auch gerade die Sprache zu lernen. (Kann also sein, dass ich auch falsch liege )
|
|
|
25.01.13, 23:46
|
#6
|
Erfahrenes Mitglied
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
|
@Jogi Sigrak: Versuch dir abzugewöhnen mit so vielen Pointern und besonders Rückgaben von Pointern zu Arbeiten ... ansonsten passt alles ...
|
|
|
26.01.13, 12:15
|
#7
|
Anfänger
Registriert seit: Dec 2009
Beiträge: 3
Bedankt: 0
|
war ja nurn beispiel programm.^^
|
|
|
26.01.13, 15:14
|
#8
|
Erfahrenes Mitglied
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
|
Nur warum muss ein Beispielprogramm einen schlechten Stiel haben? War ja nur ein Tipp für dich, damit du in Zukunft weniger Fehler beim Programmieren machst
|
|
|
26.01.13, 22:02
|
#9
|
No0n3
Registriert seit: Mar 2010
Beiträge: 243
Bedankt: 875
|
Zitat:
Zitat von Jogi Sigrak
war ja nurn beispiel programm.^^
|
Ist aber nicht ein sehr gutes Beispiel, vorallem wozu benutzt du immer einen this-pointer?
Thelvan hat eh schon genau beschrieben, was ein Konstruktor ist.
__________________
Everything's gonna be alright...
|
|
|
27.01.13, 12:30
|
#10
|
Anfänger
Registriert seit: Dec 2009
Beiträge: 3
Bedankt: 0
|
Das war ja nur ein Beispiel, habe da mir die Funktionsweise von Pointern angeschaut. War kein explizites Beispiel fürn Konstruktor.
Klar, ich benutze Pointer da nicht so extrem wie hier.
|
|
|
Forumregeln
|
Du kannst keine neue Themen eröffnen
Du kannst keine Antworten verfassen
Du kannst keine Anhänge posten
Du kannst nicht deine Beiträge editieren
HTML-Code ist Aus.
|
|
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:01 Uhr.
().
|