Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Klasy,argumenty funkcji

Ostatnio zmodyfikowano 2016-04-15 06:21
Autor Wiadomość
szawel
Temat założony przez niniejszego użytkownika
Klasy,argumenty funkcji
» 2016-04-14 18:54:01
Mam następujący problem.
C/C++
class Stos {
public:
    double stos[ MAX_SIZE ];
    int rozmiar;
    double pop( ???? );
};
Tak wygląda fragment mojej klasy. W main tworze obiekt s1.
C/C++
Stos s1;
double a = s1.pop( ??? );
Chce, żeby stos bylo argumentem funkcji. Jak to zrobić?
P-147263
carlosmay
» 2016-04-14 19:43:09
Chce, żeby stos bylo argumentem funkcji.
Po co? Wytłumacz.
P-147270
szawel
Temat założony przez niniejszego użytkownika
» 2016-04-14 22:13:52
pop ma ściągać argument ze stosu.
P-147275
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ć.
P-147276
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.
P-147279
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++
C/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;
    }
};



// poniżej oddzielne funcje pisanie w stylu C

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 ); // tak jak w C
    //klasy w C++ mają tą zaletę że możesz zapisywać
    stos.push( 11 ); //moim zdaniem czytelnienj
    //zamiast
    push( stos, 12 );
   
   
    double y = stos.pop(); // tak można w C++
    cout << y << endl;
    pop( stos, y ); //tak w C przy urzyciu odddzielnych funkcji gdzie obiekt stos jest parametrem
    cout << y << endl;
    pop( stos, y ); //tak w C przy urzyciu odddzielnych funkcji gdzie obiekt stos jest parametrem
    cout << y << endl;
}
P-147291
« 1 »
  Strona 1 z 1