Witam.
Piszę w zarządzanym C++. Mam pewną wątpliwość co do tego, jak działa dokładnie lista w C++.
Piszę konstruktor kopiujący do jednej klasy i ważne jest dla mnie, by był on faktycznie kopiujący. Klasa zawiera List<A^>^ a
(A to inna klasa, którą mam). Konstruktor kopiujący ma oczywiście deklarację:
B(const B% b);
Pytanie, czy jeżeli w środku dam:
a = gcnew List<A^>();
for(int i = 0; i < 3; i++) //3 - tyle dokładnie jest tam elementów. Zawsze.
{
a->Add(b.a[i]);
}
to czy wtedy zostaną te wartości skopiowane, czy tylko zostaną przestawione wskaźniki na A?
Podobnie z AddRange:
a = gcnew List<A^>();
a->AddRange(b);