 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Alexander Mahr Guest
|
Posted: Wed Sep 24, 2003 3:01 pm Post subject: Zugriffsbeschränkung bei statischen data members |
|
|
Hallo Newsgroup,
Statische data members sind eine gängige Art Daten zwischen den Objetkten
einer Klasse auszutauschen,
bzw diese Daten gemeinsam zu benutzen. Allerdings führt das keyword static
zu einer mir unerklärlichen
Einschränkung: Die statischen data members können nur in der Datei in
welcher sie deklariert wurden
verändert werden , bzw sie sind eigentlich nur in dieser datei existent.
Gibt es bei diesem "Problem" ein work-around?
Danke für Hilfe und Antwort schon im Voraus,
Cu Alexander
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
Alexander Mahr Guest
|
Posted: Wed Sep 24, 2003 4:34 pm Post subject: Re: Zugriffsbeschränkung bei statischen data members |
|
|
"Falk Tannhäuser" wrote:
| Quote: | Ohne (maximal vereinfachten) Beispielkode, welcher dein Problem
reproduziert,
sieht es schwierig aus, eine Lösung zu finden...
Normalerweise hat man sowas:
------------ Datei: foo.H ------------
class foo
{
public:
static int bar;
static int const blupp = 666;
};
------------ Datei: foo.C ------------
#include "foo.H"
int foo::bar = 42;
int const foo::blupp;
---------------------------------------
In jeder weiteren Übersetzungseinheit mit '#include "foo.H" sind foo::bar
und foo::blupp zugänglich, doch nur foo::bar kann geändert werden
(vorausgesetzt, dass dort die Zugriffsrechte auf public/protected/private
foo-Members vorhanden sind).
|
Danke für die schnelle Hilfe,
Da das keyword je nachdem wo man es einsetzt "data meber", "globale
variable", "member function" ne andere function
hat habe ich gedacht static würde bedeuten das auch "data member" einer
Klasse nur noch von Functionen welche innerhalb
der Datei stehen in welchen die Klasse deklariert wied zugreifbar ist .
Sozusagen das static das gegenteil von extern(keyword) ist.
das war aber nicht mein fehler. Ich habe nur nicht gedacht das mit
class foo
{
static int data;
}
bereits speicher für foo::data bereit gestellt wäre
mit
main()
{
static in data
}
wäre es ja so
Jetzt weiss ich das ein
int foo::data;
noch notwendig ist
Danke für die Hilfe
CU Alexander
--
de.comp.lang.iso-c++ - Moderation: mailto:voyager+mod (AT) bud (DOT) prima.de
FAQ: http://www.voyager.prima.de/cpp/ mailto:voyager+send-faq (AT) bud (DOT) prima.de
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|