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

Bigmek

Frischling

  • »Bigmek« ist der Autor dieses Themas

Beiträge: 28

Beruf: Informatiker(programmierer)

  • Private Nachricht senden

21

31.01.2008, 10:35

Das heist wenn ich jetzt ganz normal eine instanz ertselle kann ich normal mit . zugreifen allso

Hey danke jetzt verstehe ich das auch

testKlasse = klasse
varname = vraiablename

testKlasse
...
int member;
...

C-/C++-Quelltext

1
2
3
4
5
6
7
testKlasse varname ; //muss da nicht noch ein = new testKlasse() sein?

varname .member = 0;

// und nacher delete? 

//wenn ja wie schreibt man das einfach

//varname.delete oder delete(varname)

//sorry aber ist schon ne weile her das ich sowas programmiert habe

GR-PA

Treue Seele

Beiträge: 326

Wohnort: Daheim

Beruf: Faulenzer

  • Private Nachricht senden

22

31.01.2008, 12:10

Zitat von »"Bigmek"«

C-/C++-Quelltext

1
2
3
4
5
6
7
testKlasse varname ; //muss da nicht noch ein = new testKlasse() sein?

varname .member = 0;

// und nacher delete? 

//wenn ja wie schreibt man das einfach

//varname.delete oder delete(varname)

//sorry aber ist schon ne weile her das ich sowas programmiert habe

new und delete werden nur verwendet, wenn man Zeiger benutzt. Das sieht dann so aus:

C-/C++-Quelltext

1
2
3
4
5
6
Klassenname *Irgendetwas;
Irgendetwas = new Klassenname; // Wenn du einen Konstruktor ohne Parameter hast

Irgendetwas = new Klassenname(/*Parameter*/); // Wenn du einen Konstuktor mit Parametern hast


delete Irgendetwas;
Irgendetwas = NULL;


Also wenn du nur Solche Sachen vergessen hast, solltest du dir nicht nochmal das Buch kaufen, sondern die Tutorials auf der Seite, deren Link ich vorhin gepostet hab durcharbeiten, denn solche Sachen stehen darin ganz gut erklärt. Wenn du dich dann darin eingearbeitet hast, kannst du dir ja ein Buch über Spieleprogrammierung kaufen.
Signaturen werden überbewertet

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

23

31.01.2008, 12:27

Zitat von »"GR-PA"«


new und delete werden nur verwendet, wenn man Zeiger benutzt.


Andersrum wärs dann richtig. Man verwendet Zeiger immer dann wenn "new" und "delete" mit von der Partie ist.
@D13_Dreinig

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

24

31.01.2008, 12:54

Zitat von »"Beneroth"«

@Mathe:
Das Problem ist dass sogar in der BMS (Schule für Berufsabitur in der Schweiz) meine Mathelehrerin nur angefangen hat sich zu wundern,den Kopf zu schütteln und verwirrt auszusehen als ich von Matrizen und vektoren spiegel bzw rotieren angefangen hab zu labern...die hatte von dem scheinbar noch nie gehört... Confused

Also das ist einfach nur traurig und kann ich mir ehrlichgesagt nicht wirklich vorstellen, da für die Mittelstufen Unterrichtgebende Lehrer eigentlich einen Hochschulabschluss haben müssen. Und dort sind Matrizen ganz sicher ein Thema. Schon von Anfang an.

Zitat

Informatik ist ein sehr sehr grosses gebiet Wink

Ja, das stimmt schon,aber wenigstens in der Schule sollten die mal ab und zu "richtig" programmieren und nicht nur ein wenig mit Skripten rumspielen.

Ja, entweder du liest einfach so ein Anfängerbuch durch, oder du kannst auch zum Beispiel "Die C++ Programmiersprache" von Bjarne Stroustrup nehmen. Ist zwar anspruchsvoller, aber wenn du noch ein wenig dazulernen willst ganz praktisch. Am Anfang wird auch ein schneller Überblick über die Syntax und allgemine Sachen, die du, wenn du das schon mal gemacht hast eigentlich alles verstehen solltest. Dort wird auch noch genauer über das Konzept und Design von Klassen eingegangen.

Bigmek

Frischling

  • »Bigmek« ist der Autor dieses Themas

Beiträge: 28

Beruf: Informatiker(programmierer)

  • Private Nachricht senden

25

31.01.2008, 13:31

Allso wenn ich keine pointer mache brauche ich kein new und delete?
Ok dann kauf ichs mir noch nicht, und schau mir lieber mal die links an.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

26

31.01.2008, 13:52

Zitat von »"Bigmek"«

Allso wenn ich keine pointer mache brauche ich kein new und delete?


Die Faustregel ist:

o zu jedem new sollte es ein delete geben.
o zu jedem new[] sollte es eine delete[] geben.
@D13_Dreinig

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

27

31.01.2008, 13:52

Nein, WENN du New/delete brauchst, DANN brauchst du Pointer.

new gibt dir immer eine Adresse auf den Speicher, den du angefordert hast.
Darum brauchst du immer einen Zeiger, indem du die Adresse speicherst und darauf zugreifen kannst.
Dieser Speicherbereich bleibt so lange reserviert, bis du delete auf den Zeiger aufrufst. Wenn du also den Zeiger VOR dem delete auf 0 setzt, dann gibt das ein Speicherleck, weil du den Bereich nicht mehr freigeben kannst.

Beneroth

Alter Hase

Beiträge: 969

Wohnort: Schweiz

Beruf: Software Entwickler

  • Private Nachricht senden

28

31.01.2008, 15:11

du kannst auch pointer ohne new/delete verwenden:

C-/C++-Quelltext

1
char * message = "Blablabla";


Zitat von »"drakon"«

Ja, das stimmt schon,aber wenigstens in der Schule sollten die mal ab und zu "richtig" programmieren und nicht nur ein wenig mit Skripten rumspielen.


hm..wir haben nur java in der schule. und OO u.ä. wird so nebenbei mal erklärt, oder eben nicht. Das zeigt sich auch immer wieder,so haben die meisten Schüler kein Problem die Beispiele abzutippen, aber wenn es darum geht diese hinsichtlich (OO-) Architektur zu erklären oder selber was komplexeres zu entwerfen wissen sie einfach nicht mehr weiter... :(

Bigmek

Frischling

  • »Bigmek« ist der Autor dieses Themas

Beiträge: 28

Beruf: Informatiker(programmierer)

  • Private Nachricht senden

29

31.01.2008, 15:14

Ja ist mir schon klar das man nicht immer New und Delete braucht, sondern nur bei Klassen. Trozdem danke

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

30

31.01.2008, 15:44

Zitat von »"Bigmek"«

Ja ist mir schon klar das man nicht immer New und Delete braucht, sondern nur bei Klassen. Trozdem danke


Nicht nur bei Klassen braucht man die Operatoren "new" und "delete". Die lassen sich für jeden Typ verwenden:

C-/C++-Quelltext

1
2
3
4
int* p = new int;
*p = 100;
printf( "value of p is: %d\n", *p );
delete p;
@D13_Dreinig

Werbeanzeige