Kann nicht auf Parent-Elemente zugreifen

Hallo Experten!

Ich habe eigene Klassen deklariert und kann nun in der abgeleiteten Klasse „Class2“ nicht auf public-Elemente der Parent-Klasse zugreifen.

Code:

class Class2;

class Class1
{
public:
 Class1();
 Class1(int INDEX, AnsiString NAME, AnsiString COMMENT);
 int Parent\_Index;
 AnsiString Name;
 AnsiString Comment;
 list C2Children; 
};

class Class3;

class Class2 : Class1 //beerbt Class1
{
public:
 Class2();
 Class2(int INDEX, AnsiString NAME, AnsiString COMMENT, int NUMBYTES, int REGADDRESS[4]);
 Class2(Class1);
 AccessMode Mode;
 VALUE\* Value;
 int Data;
 int RegAddress[4];
 Class3 \*C3Children[32];
private:
 int NumBytes;
};

class Class3 : Class2 //beerbt Class2
{
public:
 Class3();
 Class3(int INDEX, AnsiString NAME, AnsiString COMMENT, int NUMBYTES, int REGADDRESS[4], int NUMBITS);
 int NumBits;
};

Diese 3 Klassen sind voneinander abgeleitet, Class1 und Class2 enthalten Verweise auf ihre moeglichen Children.

Spaeter im Program wenn ich versuche ueber ein Objekt OClass2.Parent_Index auf ein als public deklariertes Element der Class1 zuzugreifen bringt BCB5 folgenden Fehler:
E2247: Zugriff auf ‚Class1::stuck_out_tongue:arent_Index‘ nicht moeglich.

Woran kann das liegen, wie kann ich trotzdem auf diese Variable zugreifen.

Tausend Dank im Vorraus, Christof

Hallo Christof,

Ich habe eigene Klassen deklariert und kann nun in der
abgeleiteten Klasse „Class2“ nicht auf public-Elemente der
Parent-Klasse zugreifen.

mach es so:

class Class2: **public** Class1
{
...
}

Nur so sind ‚public‘- und ‚protected‘-Mitglieder der Basisklasse auch in der abgeleiteten Klasse ‚public‘ bzw. ‚protected‘. Wenn das Wörtchen ‚public‘ fehlt, sind alle Bestandteile der Basisklasse ‚private‘.

Gruß, Ralf

mach es so:

class Class2: public Class1
{

}

Nur so sind ‚public‘- und ‚protected‘-Mitglieder der
Basisklasse auch in der abgeleiteten Klasse ‚public‘ bzw.
‚protected‘. Wenn das Wörtchen ‚public‘ fehlt, sind alle
Bestandteile der Basisklasse ‚private‘.

Tausend Dank, im Moment habe ich das auch herausgefunden.

Gruss, Christof