Hier können Artikel, Tutorials, Bücherrezensionen, Dokumente aller Art, Texturen, Sprites, Sounds, Musik und Modelle zur Verfügung gestellt bzw. verlinkt werden.
Forumsregeln
Möglichst sinnvolle Präfixe oder die Themensymbole nutzen.
CodingCat hat geschrieben:
Leider gibt es Fälle, in denen die Einzelübergabe privater Attribute an private Funktionen alleine aufgrund der großen Attributanzahl äußerst mühsam und damit unpraktikabel wird. In diesem Fall kann auf eine verschachtelte Attributstruktur zurückgegriffen werden, deren Typ öffentlich zugänglich, die Instanz selbst jedoch privat ist:
Damit sich private Methoden "tatsächlich privat", also rein modulintern, als freie Funktionen definieren lassen (siehe void privateMethod(foo::M &m)). Alles andere würde die Deklaration dieser freien Funktionen als friends im Header erfordern, womit jeglicher Vorteil zunichte wäre, denn dann ließen sich mit weniger Umstand auch einfach direkt private Methoden verwenden.
Im Übrigen schadet das wenig, denn das Attribut selbst ist wieder private. Die Klasse hat es also nach wie vor selbst in der Hand, an wen sie die Interna rausgibt.
CodingCat hat geschrieben:Damit sich private Methoden "tatsächlich privat", also rein modulintern, als freie Funktionen definieren lassen (siehe void privateMethod(foo::M &m)). Alles andere würde die Deklaration dieser freien Funktionen als friends im Header erfordern, womit jeglicher Vorteil zunichte wäre, denn dann ließen sich mit weniger Umstand auch einfach direkt private Methoden verwenden.
Im Übrigen schadet das wenig, denn das Attribut selbst ist wieder private. Die Klasse hat es also nach wie vor selbst in der Hand, an wen sie die Interna rausgibt.
Besten Dank an Dich und das beste Forum überhaupt! :-) Ich setze diesen Thread übr. gerade in einer Firma um und muss diese "unkonventionelle" Art und Weise des Programmierens rechtfertigen.