我正在研究一個程序並且有一個奇怪的與cout相關的問題。由於該程序有點大,代碼說話最好,我會粘貼相關的代碼片段。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";
這段代碼打印出的十六進制值。十六進制值等於整數值。任何想法爲什麼發生這種情況?
在此先感謝。
啊,是的,這是有道理的。非常感謝! – bayindirh 2012-02-10 21:26:54