C++ Ha a main függvényben meghívok egy másik függvényt, annak hogyan lehet lekérdezni a változóinak az értékét, ha több értékre is kíváncsi vagyok egyszerre?
Hagyományos esetben ugye így néz ki kb.:
int main()
{
int a=3,b=4,c;
c=osszeadas(a,b);
}
int osszeadas(int x, int y)
{return x+y;}
De mi van akkor ha én a segédfüggvényből több dologra is kíváncsi vagyok illetve a segédfüggvénnyel egyszerre több dolgot akarok kiszámoltatni és nem csak a visszatérő értéke érdekel.
Pl. így néz ki a meghívott függvény:
int szamitasok(int x, int y)
{
int a1, a2, a3;
a1=x+y;
a2=x-y;
a3=x*y;
return 0;
}
Hogy tudom a fő függvénynek átadatni az a1, a2, a3 értékét?
Úgy, hogy pointereket adsz át paraméterként, és abba teszed a visszatérési értékeket:
void szamitasok(int x, int y, int* a1, int* a2, int* a3)
{
int eredmeny1,eredmeny2, eredmeny3;
/*
Kiszámolod, amit akarsz
*/
*a1 = eredmeny1;
*a2 = eredmeny2;
*a3 = eredmeny3;
}
A main-ből pedig így hívod meg pl:
int main()
{
int a=3,b=4,vissza1, vissza2,vissza3;
szamitasok(a,b,&vissza1, &vissza2, &vissza3);
}
Ha nem tiszta, nézz utána a pointereknek.
Vagy pedig, ha már ismered az osztályokat, viszont még nem feltétlenül akarsz pointerekkel és referenciákkal vacakolni, ez talán egyszerűbb:
class Szamitas{
int a;
int b;
int c;
void Metodus(int x, int y, int z)
{
a = x; b = y; c = z;
}
};
int main()
{
Szamitas sz;
sz.Metodus(1,2,3);
std::cout << sz.a << std::endl; //1
std::cout << sz.b; << std::endl;//2
std::cout << sz.c; << std::endl;//3
return 0;
}
Vagy pedig, ha már ismered az osztályokat, viszont még nem feltétlenül akarsz pointerekkel és referenciákkal vacakolni, ez talán egyszerűbb:
class Szamitas{
int a;
int b;
int c;
void Metodus(int x, int y, int z)
{
a = x; b = y; c = z;
//amit akarsz
}
};
int main()
{
Szamitas sz;
sz.Metodus(1,2,3);
std::cout << sz.a << std::endl; //1
std::cout << sz.b; << std::endl;//2
std::cout << sz.c; << std::endl;//3
return 0;
}
További kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!