C++Talk.NET Forum Index C++Talk.NET
C++ language newsgroups
 
Archives   FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Statische Elemente in der Vererbung

 
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German)
View previous topic :: View next topic  
Author Message
Carsten Breuer
Guest





PostPosted: Sun Nov 19, 2006 12:59 am    Post subject: Statische Elemente in der Vererbung Reply with 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 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





PostPosted: Sun Nov 19, 2006 1:26 am    Post subject: Re: Statische Elemente in der Vererbung Reply with quote



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





PostPosted: Sun Nov 19, 2006 1:31 am    Post subject: Re: Statische Elemente in der Vererbung Reply with quote



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





PostPosted: Sun Nov 19, 2006 1:50 am    Post subject: Re: Statische Elemente in der Vererbung Reply with 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:

#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





PostPosted: Sun Nov 19, 2006 2:37 pm    Post subject: Re: Statische Elemente in der Vererbung Reply with quote

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





PostPosted: Sun Nov 19, 2006 7:34 pm    Post subject: Re: Statische Elemente in der Vererbung Reply with quote

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 Wink
Back to top
Carsten Breuer
Guest





PostPosted: Tue Nov 21, 2006 1:59 am    Post subject: Re: Statische Elemente in der Vererbung Reply with quote

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
Display posts from previous:   
Post new topic   Reply to topic    C++Talk.NET Forum Index -> C++ (German) All times are GMT
Page 1 of 1

 
Jump to:  
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


Powered by phpBB © 2001, 2006 phpBB Group
SEO toolkit © 2004-2006 webmedic.