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

Anonymous

unregistriert

11

27.09.2008, 15:51

Ich finde structs mit Methoden "unschön".

12

28.09.2008, 13:32

Zitat von »"Das Gurke"«

Seit es C++ gibt? In C++ ist der einzige unterschiede zwischen class und struct das "voreingestellte" Zugriffslevel: public für struct und private für class.

irgendwo (ich glaub C++ für spieleprogrammierer) wurde gesagt (oder zumindest assoziiert), dass structs keine Methoden haben dürfen :?

Toa

Alter Hase

Beiträge: 944

Beruf: Research associate

  • Private Nachricht senden

13

28.09.2008, 13:52

Nein wie Gurke schon gesagt hat ist der Unterschied die Zugriffsberechtigung in einer Struct ist nämlich alles public ..Wo was Anwendung findet ist Geschmackssache (wie Ul schon gesagt hat er findet structs mit Methoden zb. "unschön"). Ich persönlich benutze Structs auch nur für zusammenfassende Attribute und ansonsten für nichts denn meiner Meinung nach sollte man sich an das OOP Prinzip halten und nicht alles public machen ^.^ soviel dazu ...

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

14

28.09.2008, 13:58

Ich benutze hie und da structs mit einem Konstruktor, um die korrekte Initialisierung aller Werte zu garantieren. Aber mehr als nen Konstruktor darf ne Struktur dann auch nicht haben, dafür gibts schließlich Klassen.

Aber technisch betrachtet sind Strukturen und Klassen in C++, bis eben auf das Zugriffslevel, wirklich identisch.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
struct classlike
{
  private:
}
class structlike
{
  public:
}

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

15

28.09.2008, 13:59

Hallo,
das Problem mit struct und class hatte ich auch schon öfters gelesen.
Warum glauben die Leute, dass man eine struct nicht wie eine class verwenden kann?
Das haben sich bestimmt gelangweilte C Programmierer ausgedacht um C++ Einsteiger zu verwirren :/

Bis auf den Standard beim Zugriff, der schon mehrfach erwähnt wurde, kann ein struct genau das selbe wie eine class.
Man kann damit auch vererben etc.
Aber class ist, vor allem in der Objektorientierung doch die bessere Wahl.

MFG T-Virus
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

Anonymous

unregistriert

16

28.09.2008, 14:00

Das einzigste was ich bei Structs benutze ist der operator () für sowas z. B.:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// ///////////////////////////////////////////////////////////////////////////

// PROTECTED

//

// Unbenutzte Texturen entfernen.

// ///////////////////////////////////////////////////////////////////////////

void texture_manager::clean_up (void)
{
        // Löschkonditition definieren.

    struct erase_condition
    {
        bool operator () (const boost::weak_ptr<texture>& object)
        {
            texture_ref texture = object.lock ();
            return (!texture);
        }
    };

        // Alle unbenutzten Texturen entfernen.

    texture_vector_type::iterator it = std::remove_if (texture_vector_.begin(), texture_vector_.end (), erase_condition ());
    texture_vector_.erase (it, texture_vector_.end ());
}


Aber c'tors habe ich in Structs noch nie benutzt.

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

17

28.09.2008, 14:04

Zitat von »"T-VIRUS"«

Warum glauben die Leute, dass man eine struct nicht wie eine class verwenden kann?
[...]
Aber class ist, vor allem in der Objektorientierung doch die bessere Wahl.
Ahja *g*

Hmm, und ulongs Snippet muss ich mir dringend merken. Guter Gedanke =)

18

28.09.2008, 14:09

Zitat von »"T-VIRUS"«

Warum glauben die Leute, dass man eine struct nicht wie eine class verwenden kann?

weil in vielen Einsteigerbüchern zuerst structs ohne Methoden erklärt werden, und dann Klassen mit Methoden dazukommen, und dabei vergessen wird zu erwähnen, dass structs auch Methoden besitzen können.

Anonymous

unregistriert

19

28.09.2008, 14:11

Das Gurke
Hmn?

Das Gurke

Community-Fossil

Beiträge: 1 996

Wohnort: Pinneberg

Beruf: Schüler

  • Private Nachricht senden

20

28.09.2008, 14:15

Ich kam noch nie auf die Idee für die STL Algorithmen einfach ne Struktur "inline" zu deklarieren, was zu ziemlich verstreutem Code führen kann ...

Werbeanzeige