Klasy,argumenty funkcji
Ostatnio zmodyfikowano 2016-04-15 06:21
szawel Temat założony przez niniejszego użytkownika |
Klasy,argumenty funkcji » 2016-04-14 18:54:01 Mam następujący problem. class Stos { public: double stos[ MAX_SIZE ]; int rozmiar; double pop( ???? ); }; Tak wygląda fragment mojej klasy. W main tworze obiekt s1. Stos s1; double a = s1.pop( ??? ); Chce, żeby stos bylo argumentem funkcji. Jak to zrobić? |
|
carlosmay |
» 2016-04-14 19:43:09 Chce, żeby stos bylo argumentem funkcji. |
Po co? Wytłumacz. |
|
szawel Temat założony przez niniejszego użytkownika |
» 2016-04-14 22:13:52 pop ma ściągać argument ze stosu. |
|
1aam2am1 |
» 2016-04-14 22:29:02 pop jest metodą ma dostęp do obiektu z którego jest wywołany nie trzeba go osobno przekazywać. |
|
carlosmay |
» 2016-04-14 23:23:25 pop ma ściągać argument ze stosu. |
Więc dodaj do klasy statyczny licznik, który będzie wskazywał aktualny "top". Aktualizuj licznik: ++ przy dodawaniu elementu na stos i -- przy zdejmowaniu ze stosu. |
|
mateczek |
» 2016-04-15 06:21:39 Chce, żeby stos bylo argumentem funkcji. Jak to zrobić? |
Napisz tak jak się pisze w C a nie w C++ #include <iostream>
using namespace std; struct _stos { double stos[ 100 ]; int rozmiar = 0; double pop() { return stos[ --rozmiar ]; } void push( double element ) { stos[ rozmiar++ ] = element; } };
void pop( _stos & s, double & element ) { element = s.stos[ --s.rozmiar ]; } void push( _stos & s, double element ) { s.stos[ s.rozmiar++ ] = element; }
int main( int argc, char * argv[] ) { _stos stos; push( stos, 10 ); stos.push( 11 ); push( stos, 12 ); double y = stos.pop(); cout << y << endl; pop( stos, y ); cout << y << endl; pop( stos, y ); cout << y << endl; }
|
|
« 1 » |