Kezdőoldal » Számítástechnika » Programozás » C++ Ha a main függvényben...

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?

Figyelt kérdés

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?



2011. dec. 3. 09:16
 1/6 anonim ***** válasza:

Ú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.

2011. dec. 3. 10:53
Hasznos számodra ez a válasz?
 2/6 A kérdező kommentje:
Köszi, ez így nagyjából világos!:)
2011. dec. 3. 11:18
 3/6 anonim ***** válasza:

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;

}

2011. dec. 3. 23:50
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:

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;

}

2011. dec. 3. 23:50
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:
Bocsánat a duplázásért.
2011. dec. 3. 23:51
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Köszi az osztályos példát. Az osztályok még zavarosak nekem, de szemléletes ez a példa és már megértettem ez alapján is sokmindent.
2011. dec. 4. 23:28

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!