Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

16.02.2005, 18:32

komische frage...

ich weiß nicht ich finde die frage irgendwie sehr blöde...

aber wie mach ich das wenn ich in ner klasse keine init- oder loadfunktion hab und ner variable nur beim ersten aufruf der klasse einen wert zuweisen will? ich denke mal in nen konstruktor packen aber ich hab noch keinen drin und hab so ein problem noch nie in anderen quellcodes gesehn :]

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

2

16.02.2005, 18:45

naja, indirekt haste schon nen Konstructor drinne ;) auch nen Destructor und einen Zuweisungsoperator! Das wird nähmlich automatisch vom System erstellt, wenn des Kompilierst! musste mal probieren das

Quellcode

1
2
SelbstDefinierteKlasse a, b;
a=b;


funktioniert! insofern, man keine Dynaischen Variablen drin hat! Und das ist auch der Grund warum man die meistens selber deklarieren muss!

Ich würde dir empfehlen immer einen Standart zu haben, zu dem gehören Konstructior, Desturctor, Zuweisungs- und Kopieroperator. (zu mindest bei mir)
Zu deinem "Problem", was du ja eigentlich schon gelöst hast:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
class C_Test
{
public:
int a;
C_Test();
~C_Test();
}


C_Test::C_Test()
{ a= 10; }

C_Test dasisteintest;

die Variable a der Klasse dasisteintest hat immer den Wert 10, wenn man eine neue Instanz erstellt

weigo

Treue Seele

Beiträge: 234

Wohnort: Deutschland

  • Private Nachricht senden

3

17.02.2005, 16:09

Was meinst du mit

Zitat

nur beim ersten aufruf der klasse einen wert zuweisen will?


Willst du, dass die Variable immer einen Wert hat, auch wenn du mehrer Objekte der Klasse erstellst oder willst du immer auf das gleiche Objekt von mehreren Methoden aus zugreifen?

Für 1. : Du kannst eine Member Variable als static deklarieren, dann gehört
die Variable zur Klasse und nicht zu einem Objekt und ist somit in
allen Objekten gleich.
Für 2. : Dafür müsstest du aus deiner Klasse ein Singleton machen.

Vielleicht habe ich auch nur deine Frage nicht verstanden :)

Wenn du wirklich nur einen Konstruktor brauchst, dann musst du es so machen, wie es koschka bereits erklärt hat. Ich würde dir auch empfehlen immer eine Konstruktor, Destruktor und nach Möglichkeit auch einen Kopierkonstruktor und Zuweisungsoperator zu implementieren.

4

17.02.2005, 18:15

naja am besten ich hol mal weiter aus :]

ich bin eben dabei tetris zu proggen und die variable soll halt den punkt beinhalten an dem die blöcke auf dem boden des levels aufliegen...sobald mehrere blöcke im spiel sind verschiebt der sich aber und deshalb brauch er nur am anfang nen startwert und wird dann immer überschrieben

ich habe aber noch ne 2. lösung gefunden und zwar kann ichs auch einfach in die initlevel() funktion packen und es würde sogar dann noch funzen wenn man das level im spiel neu startet!!!

5

17.02.2005, 18:31

Dann machst halt im Konstruktor deinen Startwert rein und noch ne Methode setValue o.Ä., mit der du dann den aktuellen Standpunkt setzen kannst.

Werbeanzeige