Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » private and static oder namespace?

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
29.03.2010, 18:06 Uhr
~cplusplusquestions
Gast


Hallo!

Ich habe eine Klasse, welche derzeit eine private static members besitzt. Meine Frage zu gutem Stil: Ist es vernünftiger diese variable und functions wie unten zu deklarieren oder wäre es sinnvoller in der Quelldatei eine namespace anzulegen, in welcher ich diese Variable und Functions definiere?

board.h


C++:
class board_c
{
public:

  // public members...

private:

  // private members...

  // static private members:

  static key_t random_piece[COLORS][PIECES][SQUARES];
  static key_t random_material[COLORS][PIECES][16];
  static key_t random_enpassant[SQUARES];
  static key_t random_castle[16];
  static key_t random_stm;

  static key_t generate_random_key();
};

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
29.03.2010, 19:49 Uhr
0xdeadbeef
Gott
(Operator)


Vernünftiger wäre es, auf Variablen mit statischer storage duration zu verzichten. Konstanten würde ich in der Quelldatei im namenlosen Namespace definieren, die Funktion vermutlich ebenfalls. Bei nicht-statischen, privaten Funktionen hängt das davon ab, ob die Funktion Zugriff auf private Teile der Klasse benötigt.

Namenloser namespace, nur für den Fall, dass es dir noch nicht bekannt ist, bedeutet

C++:
namespace {
  int const foo = 2;

  // ...
}


das führt dazu, dass die darin enthaltenen Symbole nur innerhalb dieser Übersetzungseinheit sichtbar sind, ist also ideal zum Verstecken von Implementationsdetails.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: