Anfänger C Frage

Gast #3620060
Lesenswert?

Ich habe gerade angefangen mich mit C++ zu beschäftigen und habe eine 
vermutlich einfache Frage.

Ich habe zwei verschiedene Funktionen, in etwa so (fiktives Beispiel):
1
void Funktion1()
2
{
3
...
4
int weite = irgerndwas1;
5
int breite = irgendwas2;
6
int tiefe = irgendwas3;
7
...
8
}

Diese 3 Variablen möchte ich jetzt in einer Funktion2() wiederverwenden 
ohne die Zuweisung erneut machen zu müßen. Weite, breite und tiefe 
sollen also auch in Funktion2() verwendet werden können und gültig sein. 
Wäre es nur eine Variable könnte ich dies natürlcih mit einem 
Rückgabewert realisieren. So bin ich mir noch unsicher.
Gast #3620080
Lesenswert?

Du übergibst sie als Argumente an Funktion2. Wenn sie in Funktion 
veränderbar sein müssen, als Referenz.
1
void Funktion2(int weite, int breite, int tiefe)
2
{
3
...
4
}

und als Referenz
1
void Funktion2(int& weite, int& breite, int& tiefe)
2
{
3
...
4
}

Grüsse,
René
#3620088
Lesenswert?

Hängt natürlich davon ab wie die Funktion1 und 2 aufgerufen werden 
sollen. Wenn funktion1 und funktion2 aus der main heraus aufgerufen 
werden aber nur in Funktion1 verändert werden sollen, in funktion2 aber 
nur verarbeitet dann macht man es z.B. so
1
int main(){
2
  int weite, breite, tiefe;
3
  int ergebnis;
4
  funktion1(&weite, &breite, &tiefe);
5
  ergebnis = funktion2(weite,breite,tiefe);
6
}
7

8
funktion1(int *w, int *b, int *t){
9
  *w = 12;
10
  *b = 23;
11
  *t = 34;
12
}
13

14
int funktion2(int w,int b, int t){
15
  return w*b*t;
16
}
Gast #3620090
Lesenswert?

Danke für die schnellen Antworten.

@ Rene

Ich will ja dass der Funktion2 genau die Werte weite, breite und tiefe 
aus Funktion1 übergeben werden. Vermutlich wieder blöde Frage, aber wie 
rufe ich dann Funktion2 auf?

EInfach:
1
void Funktion1()
2
{
3
...
4
int weite = irgerndwas1;
5
int breite = irgendwas2;
6
int tiefe = irgendwas3;
7
...
8
}
9

10
void Funktion2(int weite, int breite, int tiefe)
11
{
12
...
13
}
14

15
Funktion2(weite,breite,tiefe);

???
Gast #3620095
Lesenswert?

Anfänger++ schrieb:
> Danke für die schnellen Antworten.
>
> @ Rene
>
> Ich will ja dass der Funktion2 genau die Werte weite, breite und tiefe
> aus Funktion1 übergeben werden. Vermutlich wieder blöde Frage, aber wie
> rufe ich dann Funktion2 auf?
>
> EInfach:
> void Funktion1()
> {
> ...
> int weite = irgerndwas1;
> int breite = irgendwas2;
> int tiefe = irgendwas3;
> ...
> }
>
> void Funktion2(int weite, int breite, int tiefe)
> {
> ...
> }
>
> Funktion2(weite,breite,tiefe);
>
> ???
Richtig!
Natürlich aber aus einer Funktion aus (in Deinem Fall in Funktion1).

Wenn Du das nicht willst, ist es hilfreich wenn Du die Frage näher 
beschreibst. Also, wo wird Funktion1 aufgerufen und wo Funktion2 
(Stichwort: Scope).

Grüsse,
René
Gast #3620103
Lesenswert?

Also eigentlich habe ich nur eine Lin, nennen wir sie Unter1.h
In dieser befindet sich die Funktion1():
1
void Funktion1()
2
{
3
...
4
int weite = irgerndwas1;
5
int breite = irgendwas2;
6
int tiefe = irgendwas3;
7
...
8
}

In derselben Unter1.h will ich nun auf eine Funktion2() zugreifen, die 
mit denselben Variablen weite,breite und tiefe aus Funktion1() arbeiten 
kann, also in etwa so:
1
void Funktion2()
2
{
3
...
4
int Volumen;
5
Volumen = weite*breite*tiefe
6
...
7
}

Das ganze halt ohne in Funktion2() wie der die Zuweiseungen int weite = 
irgerndwas1;  usw. zu machen

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren