Wyjątek dla jeszcze nieistniejącego obiektu
Ostatnio zmodyfikowano 2012-10-05 12:59
diego997 Temat założony przez niniejszego użytkownika |
» 2012-10-04 16:51:51 vector < int > INT;
try { INT[ 0 ] = 1; } catch(...) { cout << "Marian"; }
|
|
Admixior |
» 2012-10-04 17:05:56 Byłem pewien że to rzuca wyjątek. Jednak okazało się że nawet nie śmie rzucać.
Mam nie miłą informację. Nie da się czegoś takiego zrobić. :( A przynajmniej ja nie mam pomysłu. Trzeba sprawdzać. |
|
DejaVu |
» 2012-10-04 17:11:40 Powiem tak: całkowicie bezsensowną ideą jest odwoływanie do pamięci w której nic nie istnieje. Najpierw utwórz obiekt, a potem wywołuj ewentualnie metody, które rzucają wyjątkiem. |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2012-10-04 17:13:39 Myslalem po prostu ze to dziala w taki sposob ze zamiast rzucić error zrobi wyjątek. Widocznie w czyms innym to ma zastosowanie |
|
cyklopek11 |
» 2012-10-05 00:18:58 diego997 ja bym próbował zrobić to tak: napisać własną klasę szablonową MojVector gdzie: ... static int licznik; ...
Statyczne pole, określałoby ile jest aktualnie obiektów w MojVector. Inicjowane by było zerem. Każdy dodawany element zwiększałby o jeden ten licznik a przy usuwaniu zmniejszałby o jeden. Podczas odwoływania się do danych indeksów, MojVector sprawdzałby wartość podanego indeksu oraz wartość licznik, czyli czy odwołanie jest prawidłowe. Jeśli nie: Jeśli nie masz pomysłu, jakby się zabrać za taką szablonową klasę to podpowiem, że w I tomie Pasji Grębosza jest sporo na ten temat :-) |
|
Mrovqa |
» 2012-10-05 08:18:26 @cyklopek11 Statyczne pole, określałoby ile jest aktualnie obiektów w MojVector. |
Ty chyba nie wiesz co to jest statyczne pole. Jest ono wspólne dla wszystkich istniejących obiektów danej klasy. Wystarczy (a nawet powinno być!) zwykłe pole. Tak poza tym po co to implementować, skoro std::vector zawiera taki licznik? |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2012-10-05 12:59:46 Wiesz co tak mi się wydaje że to co proponujesz można równie dobrze zrobić zwykłym ifem, a poza tym tak jak pisze @mrovqa vector posiada metode size(). Ale dzięki za nadmienienie że w pasji jest to omówione chyba bede musial zainwestowac ;p |
|
1 « 2 » |