mitas Opublikowano 30 Marca 2004 Zgłoś Opublikowano 30 Marca 2004 #include <assert.h> #include <stdlib.h> #include <stdio.h> //PROGRAM MA TWORZYC DYNAMICZNIE 2 STOSY JEDEN ORYGINALNY I KOPIE DO NIEGO PRZY UZYCIU KONSTRUKTOROW class stos { public: void push (int a); int pop(); void clear(); stos() ; stos(stos & ; ~stos(); private: int top; int size; int *dane; }; stos::stos() //STOS ORYGINALNY { top=0; size=0; dane=NULL; }; stos::stos(stos & rhs) //KOPIA PRZY UZYCIU KONSTRUKTORA { top=rhs.top; size=rhs.size; dane=rhs.dane; } stos::~stos() //USUWANIE STOSU (CHYBA) { }; void stos::clear() //TO TEZ { top=0; }; void stos::push(int a) //DYNAMICZNA ALOKACJA PAMIECI I ZAPELNIANIE STOSU PIERWSZEGO //(FUNKCJA ZAPELNIAJACA STOS) { if (top>=size) { int newsize=(size+1)*2; dane=(int*)realloc(dane,newsize* sizeof (int));//TUTAJ JEST ALOKOWANIE printf("Rozmiar stosu : %d -> %dn",size,newsize); assert(dane); size=newsize; } dane[top++]=a;//TUTAJ ZAPELNIANIE }; int stos::pop() { assert(top>0); return dane[--top]; }; int main () { int i; stos s1; for (i=0;i<=20;i++) s1.push(i); printf("Zapelnianie stosu zakonczonen"); stos s2(s1);//WYWOLANIE KONSTRUKTORA KOPIUJACEGO printf("Kopia stosu zrobionan"); printf("STOS ORYGINALNYn"); for (i=0;i<=20;i++) printf("%d ",s1.pop()); printf("n"); printf("KOPIA STOSUn");// WYSWIETLA ZAWARTOSC KOPII (CHYBA) for (i=0;i<=20;i++) printf("%d ",s2.pop());// S2.POP() OZNACZA WYSWIETLANIE WLASNIE KOPII getchar(); return 0; }// MAM NADZIEJE ZE TO GOWNO DZIALA TAK JAK POWINNO, A NIE WYSWIETLA JAKIES BZDURY!!!!!!!!!!!! program przedstawia kopiowanie płytkie stosu, mam prosbe by ktos mógł to przerobic na kopiowanie glebokie, dodał operator "=". Jezeli istnieje możliwośc dodania komentarzy to byłbym bardzo wdzieczny Bardzo zależy mi na czasie!!! Z góry dziękuję zqa okazaną pomoc :evil: :!: :!: :!: Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
pshem Opublikowano 30 Marca 2004 Zgłoś Opublikowano 30 Marca 2004 zastanawia mnie jedno. coraz czesciej "poczatkujacy" uczestnicy daja tutaj coraz bardziej skomplikowane problemy. i to do zrobienia na juz. powiem krotko - uczyc sie. a jak nie pasuje programowanie to uczelnie zmienic. w 5 sek. wygugalelem http://www.google.pl/search?num=100&hl=pl&...eep+copying&lr= a tego kodu na pare ekranow to chyba nikomu sie nie bedzie chcialo analizowac.... Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...