Forum: PC-Programmierung variablen zugriff c++


von Hans (Gast)


Lesenswert?

Hi Leute,
ich hab das bis her noch nicht gehabt, deswegen mal die Frage.
Wieso kann auf die in Data() enthaltene Variable _param.Data().Temp so 
zugegriffen werden?
1
template<typename EepromDatenT>
2
EepromDatenT & ParameterManager<EepromDatenT>::Data()
3
{
4
  return mEepromDatenContainer.Data();
5
}
6
...
7
//obj.funk().var
8
_param.Data().Temp  //Wieso funktioniert das? unter welchen Schlagwörtern kann ich suchen?

von mh (Gast)


Lesenswert?

Ich kann aus deine kurzen Beschreibung nicht wirklich ableiten, was 
genau du nicht verstehst.
Verstehst du was passiert, wenn statt
1
_param.Data().Temp;
so aussehen würde:
1
const EepromDatenT& daten = _param.Data();
2
daten.Temp;

von Gerald K. (geku)


Lesenswert?

Hans schrieb:
> /obj.funk().var
> _param.Data().Temp  //Wieso funktioniert das? unter welchen
> Schlagwörtern kann ich suchen?

Die Funtion _param.Data() liefert einen Zeiger auf eine Struktur zurück.
mit .Temp kannauf das Member Temp zugegriffen werden.

Suche: c funktion struktur zurückgeben

Beispiel :

https://riptutorial.com/de/c/example/24193/beispiel-fur-eine-funktion--die-eine-struktur-zuruckgibt--die-werte-mit-fehlercodes-enthalt

von Hans (Gast)


Lesenswert?

Danke Euch beiden hat geholfen. :)

von Wilhelm M. (wimalopaan)


Lesenswert?

Gerald K. schrieb:
> Die Funtion _param.Data() liefert einen Zeiger auf eine Struktur zurück.

Falsch.

Das Ergebnis von
1
 mEepromDatenContainer.Data()
 (wahrscheinlich ebenfalls per non-const-ref) wird per 
non-const-reference zurück gegeben.

Beitrag #6431060 wurde von einem Moderator gelöscht.
von Rolf M. (rmagnus)


Lesenswert?

Hans schrieb:
> Wieso kann auf die in Data() enthaltene Variable _param.Data().Temp so
> zugegriffen werden?

Warum sollte es denn nicht gehen?

> unter welchen Schlagwörtern kann ich suchen?

Hmm, Element-Zugriff?

von Gerald K. (geku)


Lesenswert?

Rolf M. schrieb:
> Hans schrieb:
> Wieso kann auf die in Data() enthaltene Variable _param.Data().Temp so
> zugegriffen werden?
>
> Warum sollte es denn nicht gehen?
>
> unter welchen Schlagwörtern kann ich suchen?
>
> Hmm, Element-Zugriff?
1
struct XY {
2
    int x;
3
    int y;
4
};
5
6
XY getxy(void);
7
8
//  lange Vaiante
9
10
XY xy;
11
int x,y;
12
13
xy = getxy();
14
x = xy.x
15
y = xy.y
16
17
// kurze Variante
18
19
int x,y;
20
21
x = getxy().x;
22
y = getxy().y;

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.