Skocz do zawartości
Niemiec

Why To Nie Dziala :/

Rekomendowane odpowiedzi

gcc wywala jakis blad i nie wiem wsumie dlaczego :/

 

Przeciazenie operatora '--' dla napisu. Wyrazenia "--napis" i

"napis--" odwracaja kolejnosc w napisie. Operatory zachowuja konwencje

pre/postfiksowosci.

 

 

#include <iostream>using namespace std;class napis{public:        char *nap;        napis();        int wypisz();};napis& operator--(napis&);napis& operator--(napis&, int);int main(){        napis n1;        n1.wypisz();        --n1.wypisz();        n1--.wypisz();return 0;}napis::napis():nap("kot ma ale"){	cout<<nap;	}napis& operator--(napis &n){        int i=0;        char *temp;        temp = new char[strlen(n.nap)];        while(n.nap){  temp[i]=n.nap[strlen(n.nap)-i];i++;	}        n.nap=temp;return n;}napis& operator--(napis &n, int x){        int i=0;        char *temp;        temp = new char[strlen(n.nap)];        while(n.nap){  temp[i]=n.nap[strlen(n.nap)-i];i++;	}        n.nap=temp;return n;}int napis::wypisz(void){        cout<<nap<<endl;return 0;}

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

b.cpp: In function `int main()':

b.cpp:17: error: non-lvalue in decrement

 

Nie umiesz czytać inglisz? ;)

 

Zamiast --n1.wypisz(); ma być (--n1).wypisz();

 

Nie zmienia to faktu, że program jest źle napisany...

Poza tym czy wiesz , że przeciążone operatory ++ i -- nie zachowują się tak jak myślisz jeżeli chodzi o pre- i postfix?

Operator przyrostkowy (post) jest stosowany natychmiast.

 

#include <iostream>using namespace std;class A{public:    int val;    A(int v) {val=v;}    A& operator++() { val++; return *this;}    A& operator++(int) { val++; return *this;}    void print() {cout<<val<<endl;}};int main(){    A a(55);    a.print();    a++.print(); //56    (++a).print();    // i tak tez nie :>    A c(55);    c.print();    A d = c++; //56    d.print();    (++c).print();        int b=55;    cout << b << endl;    cout << b++ << endl; //55 !!    cout << ++b << endl;    }
Wynik:

55

56 !!

57

55

56 !!

57

55

55 !! a tu ok :)

57

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...