 |
C++Talk.NET C++ language newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Carsten Breuer Guest
|
Posted: Sun Nov 19, 2006 12:59 am Post subject: Statische Elemente in der Vererbung |
|
|
Hallo!
Ich habe ein kleines Verständnisproblem (zumindset bin ich mir nicht
sicher) mit statischen Veriablen bei der Vererbung.
Wenn ich jetzt in meiner Basisklasse die statische Variable A habe, und
eine Kindklasse. Gilt dann:
Basis::A == Kind::A
Wenn ich Kind::A verändere, wirkt sich das dann auch auf Basis::A aus?
Oder habe ich gar kein Kind::A, wenn ich die statische Variable nur in
der Basisklasse deklariert habe?
Vielen Dank!
Carsten |
|
| Back to top |
|
 |
Daniel Albuschat Guest
|
Posted: Sun Nov 19, 2006 1:26 am Post subject: Re: Statische Elemente in der Vererbung |
|
|
Carsten Breuer wrote:
| Quote: | Ich habe ein kleines Verständnisproblem (zumindset bin ich mir nicht
sicher) mit statischen Veriablen bei der Vererbung.
Wenn ich jetzt in meiner Basisklasse die statische Variable A habe, und
eine Kindklasse. Gilt dann:
Basis::A == Kind::A
|
Hallo Carsten,
Wieso probierst du es nicht einfach aus?
#include <iostream>
struct A {
static int i;
};
int A::i;
struct B: public A {
};
int main() {
using namespace std;
A::i = 10;
B::i = 20;
cout << A::i << B::i << endl;
}
| Quote: | Wenn ich Kind::A verändere, wirkt sich das dann auch auf Basis::A aus?
|
Wirst du mit diesem Test erkennen koennen.
| Quote: | Oder habe ich gar kein Kind::A, wenn ich die statische Variable nur in
der Basisklasse deklariert habe?
|
Das wuerde zu einem Fehler beim Compilieren fuehren.
MfG,
Daniel |
|
| Back to top |
|
 |
Bob Hairgrove Guest
|
Posted: Sun Nov 19, 2006 1:31 am Post subject: Re: Statische Elemente in der Vererbung |
|
|
On Sat, 18 Nov 2006 19:59:28 +0100, Carsten Breuer
<simplySPAM (AT) nurfuerspam (DOT) de> wrote:
| Quote: | Hallo!
Ich habe ein kleines Verständnisproblem (zumindset bin ich mir nicht
sicher) mit statischen Veriablen bei der Vererbung.
Wenn ich jetzt in meiner Basisklasse die statische Variable A habe, und
eine Kindklasse. Gilt dann:
Basis::A == Kind::A
|
Wenn in Klasse Kind kein A definiert wurde, gibt es nur ein Basis::A.
| Quote: | Wenn ich Kind::A verändere, wirkt sich das dann auch auf Basis::A aus?
Oder habe ich gar kein Kind::A, wenn ich die statische Variable nur in
der Basisklasse deklariert habe?
|
Richtig.
| Quote: | Vielen Dank!
Carsten
|
--
Bob Hairgrove
NoSpamPlease (AT) Home (DOT) com |
|
| Back to top |
|
 |
Rolf Magnus Guest
|
Posted: Sun Nov 19, 2006 1:50 am Post subject: Re: Statische Elemente in der Vererbung |
|
|
Bob Hairgrove wrote:
| Quote: | Oder habe ich gar kein Kind::A, wenn ich die statische Variable nur in
der Basisklasse deklariert habe?
Richtig.
|
Dann probier mal folgendes Programm aus:
#include <iostream>
class Basis
{
public:
static int A;
};
class Kind : public Basis
{
};
int Basis::A = 42;
int main()
{
std::cout << Kind::A << '\n';
} |
|
| Back to top |
|
 |
Bob Hairgrove Guest
|
Posted: Sun Nov 19, 2006 2:37 pm Post subject: Re: Statische Elemente in der Vererbung |
|
|
On Sat, 18 Nov 2006 20:50:02 +0100, Rolf Magnus <ramagnus@t-online.de>
wrote:
| Quote: | Bob Hairgrove wrote:
|
| Quote: | Oder habe ich gar kein Kind::A, wenn ich die statische Variable nur in
der Basisklasse deklariert habe?
Richtig.
Dann probier mal folgendes Programm aus:
|
[snip]
Das Kind::A ist auch das Basis::A; ein *eigenes* A in Kind gibt es
nicht! Vielleicht habe ich den OP falsch verstanden, aber ich meinte,
er würde ebendies wissen wollen. Folgendes von Dir leicht abgeänderte
Programm drückt es vielleicht etwas klarer aus:
#include <iostream>
class Basis
{
public:
static int A;
};
class Kind : public Basis
{
};
int Basis::A = 42;
int main()
{
std::cout << "Kind::A == " << Kind::A << '\n';
Kind::A = 50;
std::cout << "Basis::A == " << Basis::A << '\n';
}
--
Bob Hairgrove
NoSpamPlease (AT) Home (DOT) com |
|
| Back to top |
|
 |
Rolf Magnus Guest
|
Posted: Sun Nov 19, 2006 7:34 pm Post subject: Re: Statische Elemente in der Vererbung |
|
|
Bob Hairgrove wrote:
| Quote: | Das Kind::A ist auch das Basis::A; ein *eigenes* A in Kind gibt es
nicht! Vielleicht habe ich den OP falsch verstanden, aber ich meinte,
er würde ebendies wissen wollen.
|
Ich glaube, du hast ihn falsch verstanden und ich daraufhin dann dich. Aber
egal. Jetzt ist es glaube ich für jeden verständlich  |
|
| Back to top |
|
 |
Carsten Breuer Guest
|
Posted: Tue Nov 21, 2006 1:59 am Post subject: Re: Statische Elemente in der Vererbung |
|
|
Vielen Dank allen für die Antworten.
Ja, ich hätte das leicht auch mit meinem Compiler prüfen könne, aber
leider stand mir im Mment nur ein MS-Version zu Verfügung. Und der traue
ich nicht wirklich.
Danke! |
|
| 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
|
|