struktur aus Klasse auslesen

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
Bang-Johansen
Beiträge: 43
Registriert: 11. Juli 2011 22:51

struktur aus Klasse auslesen

Beitrag von Bang-Johansen »

Hallo,

wie kann ich eine Struktur, die ich in einer Klasse als privat angemeldet habe, mit Hilfe einer Methode in einer
anderen Klasse auslesen ?

z.B:

Code: Alles auswählen

(Klasse test)
private:
struct tdata
                {
                unsigned char SourceAdress;
                unsigned char TargetAdress;
                unsigned char Data [32];
                unsigned char DataNumber;
                }TempDataStruct;
Die Klasse test wird dann in eine andere Klasse eingebunden:

Code: Alles auswählen

test test2
Jetzt möchte ich gerne auf die komplette Struktur zugreifen; d.h . die Methode, die ich aufrufe,
muß als Rückgabewert den Typ der Struktur haben.

Geht das überhaupt und wie kann ich diese realisieren?
Ich habe zwar Beispielcode im Netz gefunden, aber da war die Struktur immer global.
Ich möchte aber die Struktur in der Klasse haben.

Ich könnte mir die einzelnen Werte auch über jeweils einzelne Methodeh holen, aber bei dem Array
habe ich gelesen, daß Arrays als Rückgabewerte nicht gehen, man soll das Array in eine Struktur packen.

Danke für Eure Hilfe

Bang-Johansen
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: struktur aus Klasse auslesen

Beitrag von Christian81 »

Was wird 'private' wohl bedeuten? Mit public sollte es funktionieren und du solltest Dir mal C++ Klassen und die Zugriffsrechte mit public/protected/private anschauen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
Bang-Johansen
Beiträge: 43
Registriert: 11. Juli 2011 22:51

Re: struktur aus Klasse auslesen

Beitrag von Bang-Johansen »

Hallo,

Danke für die Antwort:

Aber ich habe mich anscheinend mißverständlich ausgedrückt.

Wenn ich eine Variable als privat anmelde, dann kann ich über eine andere Klasse nicht direkt drauf zugreifen.
Ich muß diese Variable über eine Methode auslesen.

z.B.

private:
int test;


Methode
int ???::Ausgabe
{
return test;
}

Nur so komme ich doch an den Wert, oder ?
Ich möchte jetzt das gleiche mit einer Struktur machen.

im Prinzip return Struktur;

Bang-Johansen
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Re: struktur aus Klasse auslesen

Beitrag von Christian81 »

Nochmal: Wenn eine Struktur private deklariert ist kann man sie nirgends anders benutzen - das ist der Sinn von private Variablen und Strukturen.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
RHBaum
Beiträge: 1436
Registriert: 17. Juni 2005 09:58

Re: struktur aus Klasse auslesen

Beitrag von RHBaum »

Wenn eine Struktur private deklariert ist kann man sie nirgends anders benutzen
Glaub er weiß nur nicht, wie man die struct public macht und die membervariable private ! :twisted:

Code: Alles auswählen

class MyClass
{
    public:
         struct tdata
         {
             unsigned char SourceAdress;
             unsigned char TargetAdress;
             unsigned char Data [32];
             unsigned char DataNumber;
         };
    private:
         tdata       TempDataStruct;
    public:
         //// get method 
         tdata getData() const;
};
da wo die Klasse kennst geht dann ein:

Code: Alles auswählen

MyClass::tdata myInst.getData();
Daruber ob die sturct def nu in der Klasse stecken soll oder nicht läßt sich designtechnisch schoen streiten :-)
wenn sie 100% zur klasse gehört, find ich obige Lösung durchaus elegant.
Andere sind da andere Meinung, ala ... wenn ich die Def einer datenstruct ausserhalb der klasse kennen muss, gehoert sie nicht in die klasse ...

Ciao ...
Antworten