Funkcja, zwracająca dwie wartości
Ostatnio zmodyfikowano 2014-12-17 09:59
mgrD Temat założony przez niniejszego użytkownika |
Funkcja, zwracająca dwie wartości » 2014-12-16 21:02:05 Witam, czy da się zrobić funkcje, któa zwróci mi dwie wartości jakimś cudem? Chciałbym przykłądowo zrobić funkcje, która mi zwróci pole trójkąta i pole kwadratu(przykłąd głupi, ale chodzi, że chcuałbym zrobić funkcje, któa zwraca dwie liczby)
|
|
darko202 |
» 2014-12-16 21:18:00 Oczywiście że się da zrobić funkcję która zwróci np. 202 wartości mówisz tylko zwrócić jakiś kontener np tablica dynamiczna, struktura, lista jeśli K to jakiś kontener (dynamiczny lub statyczny) to przechowuje dla nas dowolną ilość elementów np. K fun(){ .. return K }
jest nawet tak, że funkcja może nawet nie zwracać żadnej wartości, a przekazać nam np. 202 wartości wystarczy jej przekazać argument w postaci adresu pamięci do jakiegoś kontenera (dynamiczny lub statyczny), który przechowuje dla nas dowolną ilość elementów np. void fun(&K) {..} |
|
mgrD Temat założony przez niniejszego użytkownika |
» 2014-12-16 21:23:06 a wnętrze funkcji jak wtedy? Bo rozumiem, że bez słowa return wtedy się to robi, tak? |
|
michal11 |
» 2014-12-16 21:33:35 Przykłady. Kilka różnych typów: struct dane { int a; double b; string c; };
dane fun() { dane tmp; tmp.a = 2; tmp.b = 2.2; tmp.c = "napis"; return tmp; }
Te same typy vector < int > fun() { vector < int > tmp( 5 ); return tmp; } |
|
mgrD Temat założony przez niniejszego użytkownika |
» 2014-12-16 21:40:03 i tak samo ze zwykłą tablicą? |
|
darko202 |
» 2014-12-16 21:41:47 np. drugi przypadek void fun( int * tablica, int * rozmiar ) { int rozmiar; cout << "Podaj rozmiar tablicy:" << endl; cin >> rozmiar; tablica = new int[ rozmiar ]; tablica[ 0 ] = 11; tablica[ 1 ] = 12; tablica[ 2 ] = 13; ..... }
void main() { int * tablica; int * rozmiar; fun( tablica, rozmiar ); if( rozmiar > 0 ) cout << * tablica[ 0 ] << "\n"; ... }
zaproponuj jak wyglądałby pierwszy |
|
NopeDotAvi |
» 2014-12-16 22:18:58 zrób sobie klasę np Vector2 i tam będziesz miał dwa publiczne inty (np. x i y) w konstruktorze byś przypisywał wartość, potem zwracanie obydwóch by wyglądało w sposób: Vector2 get() const { return Vector2( twojX, twojY ); return TwojVector; }
a dostęp do nich to by było coś w tym stylu: Vector2 x = get(); x.x; x.y;
|
|
mgrD Temat założony przez niniejszego użytkownika |
» 2014-12-16 23:33:24 Dzięki wszystkim : ) |
|
« 1 » 2 |