PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zu C++ Klasse


Gast
2010-04-15, 14:24:43
Hallo zusammen!

Folgendes:


class xyz {

int x;

public:
bool bla(...);
int z;

private:
int i;
}


Wie auf Attribute bzw. Methoden im Public oder Private-Block zugegriffen wird ist mir bekannt. Was ist aber mit dem "int x", das außerhalb der Blöcke steht ? Ist das quasi ein globales Attribut ?

Danke!

Trap
2010-04-15, 14:28:16
class xyz {
a
...
}
ist äquivalent zu
class xyz{
private:
a
...
}

Alles was vor dem ersten public/protected/private steht ist per default private. Bei struct statt class ist das default public, das ist auch der einzige Unterschied in C++ zwischen class und struct.

Gast
2010-04-15, 14:32:25
Besten Dank, hab diese Info auf die Schnelle nicht über google finden können :).

Coda
2010-04-15, 15:15:09
Bei struct statt class ist das default public, das ist auch der einzige Unterschied in C++ zwischen class und struct.
Nö, class erbt noch per default private und struct public :tongue:

Gast
2010-04-15, 17:01:05
Nö, class erbt noch per default private und struct public :tongue:
Von structs ableiten? :eek: Ist ja abartig...

Gnafoo
2010-04-16, 23:09:48
Wieso das denn? Ist doch letztlich dasselbe, wie class. Bei Funktoren macht man das ganz gerne, weil die meist kurz sind, und man sich so das "public:" sparen kann.

Siehe z. B. std::unary_function:
http://www.cplusplus.com/reference/std/functional/unary_function/