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

Wyjątek dla jeszcze nieistniejącego obiektu

Ostatnio zmodyfikowano 2012-10-05 12:59
Autor Wiadomość
diego997
Temat założony przez niniejszego użytkownika
» 2012-10-04 16:51:51
C/C++
vector < int > INT;

try
{
    INT[ 0 ] = 1;
}
catch(...)
{
    cout << "Marian";
}
P-66037
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ć.
P-66040
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.
P-66044
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
P-66046
cyklopek11
» 2012-10-05 00:18:58
diego997 ja bym próbował zrobić to tak:

napisać własną klasę szablonową MojVector gdzie:
C/C++
...
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:
C/C++
throw MojWyjatek;
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 :-)
P-66094
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?
P-66097
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
P-66101
1 « 2 »
Poprzednia strona Strona 2 z 2