Podczas czytania odpowiedzi na to question mam wątpliwości dotyczące domyślnej konstrukcji obiektów w wektorze. Aby przetestować go napisałem następujący kod testowy:Domyślna konstrukcja elementów w wektorze
struct Test
{
int m_n;
Test();
Test(const Test& t);
Test& operator=(const Test& t);
};
Test::Test() : m_n(0)
{
}
Test::Test(const Test& t)
{
m_n = t.m_n;
}
Test& Test::operator =(const Test& t)
{
m_n = t.m_n;
return *this;
}
int main(int argc,char *argv[])
{
std::vector<Test> a(10);
for(int i = 0; i < a.size(); ++i)
{
cout<<a[i].m_n<<"\n";
}
return 0;
}
I rzeczywiście, kodowanym testowe domyślny konstruktor jest wywoływana podczas tworzenia obiektów wektorowych. Ale czego nie jestem w stanie zrozumieć, to w jaki sposób STL inicjalizuje obiekty I tworzy wektor podstawowego typu danych, takiego jak wektor ints, ponieważ istnieje dla niego domyślny konstruktor? tj. jak wszystkie ints w wektorze mają wartość 0? czy to nie powinno być śmieciem?
Wydaje się mieć dużo czasu na rękach, dzisiaj :) – xtofl
To radość recesji :-( –
nie wiedziałem, że .. Więc co my znowu zadzwonić int() As? To dlaczego nie mamy domyślne inicjalizatory dla podstawowych typów danych – Canopus