我試圖使用模板函數來打印指向我的列表中的對象的屬性。獲取ostream模板以在指針列表中打印實例屬性
class SomeClass {
public:
double myVal;
int myID;
}
std::list< boost::shared_ptr<SomeClass> > myListOfPtrs;
for (int i = 0; i < 10; i++) {
boost::shared_ptr<SomeClass> classPtr(new SomeClass);
myListOfPtrs.push_back(classPtr);
}
template < typename T > void printList (const std::list<T> &listRef) {
if (listRef.empty()) {
cout << "List empty.";
} else {
std::ostream_iterator<T> output(cout, " "); // How to reference myVal near here?
std::copy(listRef.begin(), listRef.end(), output);
}
}
printList(myListOfPtrs);
什麼是打印,而不是指針地址。我知道我通常會做的就像(*itr)->myVal
,但我不清楚如何調整模板功能。
您正在打印指針,而不是對象。你期望打印什麼? – 0x499602D2
我試圖打印一個屬性(如'myVal')指向的東西。 – Sarah