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

Iterator do wektora ze wskaźnikami.

Ostatnio zmodyfikowano 2011-12-01 16:16
Autor Wiadomość
blojayble
Temat założony przez niniejszego użytkownika
Iterator do wektora ze wskaźnikami.
» 2011-11-30 22:33:33
Witam. Mam pewnie prosty i banalny problem, ale kombinuję i nie wiem jak to załatwić.

C/C++
std::vector < cField *> tab;

//...wywoływanie itp...


//destrukcja
std::vector < cField *>::iterator it;
for( it = tab.begin(); it != tab.end(); ++it )
{
    it->~cField();
}

Mamy tutaj wektor z wskaźnikami na jakąś tam klasę. Ogólnie sielanka, dopóki nie przyszło mi korzystać z iteratorów


Problem tkwi w "it->~cField();".

invalid return type 'cField **' for overloaded 'operator ->'

Próbowałem wciskać gwiazdki robić różne wskaźniki, ale mi nie wychodziło. Zdaję się na Wasze doświadczenie.

Z góry dziękuję i pozdrawiam.

P-45005
malan
» 2011-11-30 22:36:05
Jakoś tak to było:
C/C++
it->( * cField );
?

/edit by malan:
To nie o to chodziło.
P-45006
blojayble
Temat założony przez niniejszego użytkownika
» 2011-11-30 22:48:09
Kombinowałem z tym, ale nie zadziałało, być może źle Cię zrozumiałem.

A jak np. miałbym tego użyć przy takim kodzie?

C/C++
td::vector < cField *>::iterator it;
for( it = tab.begin(); it != tab.end(); ++it )
{
    it->DrawField();
}

        
P-45010
malan
» 2011-11-30 22:58:57
C/C++
( * it )->DrawField();
?
P-45012
pekfos
» 2011-12-01 08:04:33
it->~cField();
Chcesz ręcznie wywołać destruktor?! To błąd (chyba, że masz tam gdzieś placement new - wtedy to nie błąd)
P-45018
blojayble
Temat założony przez niniejszego użytkownika
» 2011-12-01 16:16:53
Dziękuję, działa.
P-45034
« 1 »
  Strona 1 z 1