myGully.com Boerse.SH - BOERSE.AM - BOERSE.IO - BOERSE.IM Boerse.BZ .TO Nachfolger
Zurück   myGully.com > Computer & Technik > Programmierung
Seite neu laden

Konstruktor

Willkommen

myGully

Links

Forum

 
Antwort
Themen-Optionen Ansicht
Ungelesen 24.01.13, 19:37   #1
eminwargo
Anfänger
 
Registriert seit: Feb 2009
Beiträge: 10
Bedankt: 1
eminwargo ist noch neu hier! | 0 Respekt Punkte
Standard 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
eminwargo ist offline   Mit Zitat antworten
Ungelesen 24.01.13, 20:01   #2
Thelvan
Erfahrenes Mitglied
 
Registriert seit: Jul 2010
Beiträge: 493
Bedankt: 236
Thelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt PunkteThelvan erschlägt nachts Börsenmakler | 5269 Respekt Punkte
Standard

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.
Thelvan ist offline   Mit Zitat antworten
Ungelesen 24.01.13, 20:03   #3
Your_Conscience
Hinter dir!
 
Registriert seit: Apr 2010
Beiträge: 1.125
Bedankt: 487
Your_Conscience ist noch neu hier! | 0 Respekt Punkte
Standard

Vielleicht hilft dir ja das hier: [ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]
Your_Conscience ist offline   Mit Zitat antworten
Ungelesen 25.01.13, 17:14   #4
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

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).
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten
Ungelesen 25.01.13, 22:41   #5
Jogi Sigrak
Anfänger
 
Registriert seit: Dec 2009
Beiträge: 3
Bedankt: 0
Jogi Sigrak ist noch neu hier! | 0 Respekt Punkte
Standard

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 )
Jogi Sigrak ist offline   Mit Zitat antworten
Ungelesen 25.01.13, 23:46   #6
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

@Jogi Sigrak: Versuch dir abzugewöhnen mit so vielen Pointern und besonders Rückgaben von Pointern zu Arbeiten ... ansonsten passt alles ...
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten
Ungelesen 26.01.13, 12:15   #7
Jogi Sigrak
Anfänger
 
Registriert seit: Dec 2009
Beiträge: 3
Bedankt: 0
Jogi Sigrak ist noch neu hier! | 0 Respekt Punkte
Standard

war ja nurn beispiel programm.^^
Jogi Sigrak ist offline   Mit Zitat antworten
Ungelesen 26.01.13, 15:14   #8
slahn
Erfahrenes Mitglied
 
Benutzerbild von slahn
 
Registriert seit: Oct 2009
Beiträge: 640
Bedankt: 228
slahn ist noch neu hier! | 0 Respekt Punkte
Standard

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
__________________
"[ Link nur für registrierte Mitglieder sichtbar. Bitte einloggen oder neu registrieren ]" (Klopfers Vater)
slahn ist offline   Mit Zitat antworten
Ungelesen 26.01.13, 22:02   #9
Etikareti
No0n3
 
Benutzerbild von Etikareti
 
Registriert seit: Mar 2010
Beiträge: 243
Bedankt: 875
Etikareti erschlägt nachts Börsenmakler | 13725 Respekt PunkteEtikareti erschlägt nachts Börsenmakler | 13725 Respekt PunkteEtikareti erschlägt nachts Börsenmakler | 13725 Respekt PunkteEtikareti erschlägt nachts Börsenmakler | 13725 Respekt PunkteEtikareti erschlägt nachts Börsenmakler | 13725 Respekt PunkteEtikareti erschlägt nachts Börsenmakler | 13725 Respekt PunkteEtikareti erschlägt nachts Börsenmakler | 13725 Respekt PunkteEtikareti erschlägt nachts Börsenmakler | 13725 Respekt PunkteEtikareti erschlägt nachts Börsenmakler | 13725 Respekt PunkteEtikareti erschlägt nachts Börsenmakler | 13725 Respekt PunkteEtikareti erschlägt nachts Börsenmakler | 13725 Respekt Punkte
Standard

Zitat:
Zitat von Jogi Sigrak Beitrag anzeigen
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...
Etikareti ist offline   Mit Zitat antworten
Ungelesen 27.01.13, 12:30   #10
Jogi Sigrak
Anfänger
 
Registriert seit: Dec 2009
Beiträge: 3
Bedankt: 0
Jogi Sigrak ist noch neu hier! | 0 Respekt Punkte
Standard

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.
Jogi Sigrak ist offline   Mit Zitat antworten
Antwort


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

BB code is An
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:01 Uhr.


Sitemap

().