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

Tymczasowy obiekt klasy wewnatrz funkcji.

Ostatnio zmodyfikowano 2013-03-24 20:36
Autor Wiadomość
Monika90
» 2013-03-24 08:59:12
Operator + ma błąd, bo zwraca referencję do zmiennej lokalnej, takie zmienne przestają istnieć po powrocie z funkcji, co unieważnia referencję.

Operator = nie działa poprawnie, gdy new rzuci wyątkiem. Należy zastosować idiom copy-and-swap:
C/C++
Tablica & Tablica::operator =( Tablica other )
{
    std::swap( n, other.n );
    std::swap( tab, other.tab );
    //itd. dla pozostałych niestatycznych składowych
    return * this;
}
krótkie i działa poprawnie.
P-79274
maze
Temat założony przez niniejszego użytkownika
» 2013-03-24 20:36:51
Faktycznie sprytne to copy & swap.
Co do referencji to w kodzie mialem bez niej, wczesniej z nia co prawda kombinowalem musialem wkleic zla wersje.

Wyedytuje poprzedniego posta, zeby kogos w blad nie wprowadzic.

Dzieki Monia
P-79332
1 « 2 »
Poprzednia strona Strona 2 z 2