Я работаю над программой, и у меня странная проблема, связанная с cout. Поскольку программа немного большая и код работает лучше, я вставлю соответствующие фрагменты.
Во-первых, у меня есть итератор, *it
, определенный в для как
for(vector<facet*>::iterator it=facets_to_dump->begin(); it<facets_to_dump->end(); it++)
В этом случае, если я использую выражение
facet* facet_to_work_on = *it;
cout << facet_to_work_on->facet_id << "\t";
Хорошо печатает целые числа.
Но, если я использую обозначение
cout << (facet*)(*it)->facet_id << "\t";
Этот код выводит шестнадцатеричные значения. Шестнадцатеричные значения равны целочисленным значениям. Есть идеи, почему это происходит?
Заранее спасибо.