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

Problem z dynamicznym dodawaniem obiektów do vectora

Ostatnio zmodyfikowano 2014-12-01 10:19
Autor Wiadomość
Monika90
» 2014-11-30 15:21:30
unique_ptr sam usuwa obiekt na który wskazuje.
P-121752
dek12
Temat założony przez niniejszego użytkownika
» 2014-11-30 19:57:13
Ostatnie pytanie mam, jak przekazać teraz ten pointer jako argument funkcji.
C/C++
void metodatest( test & t1, std::vector < std::unique_ptr < test >> T )
i pozmieniałem wszystkie odwołania w ciele funkcji T.metoda na: T->metoda.
jednak wyskakuje mi taki błąd:

c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.7.1\include\c++\bits\stl_construct.h|77|error: use of deleted function 'std::unique_ptr<_Tp, _Dp>::unique_ptr(const std::unique_ptr<_Tp, _Dp>&) [with _Tp = test; _Dp = std::default_delete<test>; std::unique_ptr<_Tp, _Dp> = std::unique_ptr<test>]'|
P-121767
dek12
Temat założony przez niniejszego użytkownika
» 2014-11-30 21:44:29
Wywołuje funkcję tak:
metodatest( obiektTest, mojVektor );
P-121792
Monika90
» 2014-12-01 00:12:33
Przekazuj wektor przez (const) referencję
C/C++
void f( std::vector < std::unique_ptr < test >>& w );

f( twoj_wektor );

albo z const, jeżeli nie chcesz modyfikować obiektów
C/C++
void f( const std::vector < std::unique_ptr < test >>& w );

f( twoj_wektor );

Jeżeli masz pojedynczy
unique_ptr < test > ptr
, to robisz tak:
C/C++
void f( test & t );

f( * ptr );
P-121805
dek12
Temat założony przez niniejszego użytkownika
» 2014-12-01 10:19:25
Dziękuje Pani Moniko serdecznie :)
P-121812
1 « 2 »
Poprzednia strona Strona 2 z 2