J
Jun
Hello,
I've code like :
===========================================
class A{
public :
// create print content
friend std:stream& operator<< (std:stream&
os, const A& a);
}
typedef boost::shared_ptr<A> APtr; // Define A class smart pointer
APtr aPtr1(new A());
APtr aPtr2(new A());
APtr aPtr3(new A());
vector<APtr> AVec;
AVec.push_back(aPtr1);
AVec.push_back(aPtr2);
AVec.push_back(aPtr3);
std::copy(AVec.begin(),AVec.end(),
std:stream_iterator<APtr>(std::cout, "\n"));
The two copy methods only output the address of pointers, they could
just print the class A defined print contents. And following code
works :
===========================================
vector<APtr>::iterator i = AVec.begin();
for(; i!= AVec.end(); ++i){
cout << *static_cast<APtr>(*i) << endl;
}
===========================================
Anyone has some ideas for that ? Thank you in advance.
Jun
I've code like :
===========================================
class A{
public :
// create print content
friend std:stream& operator<< (std:stream&
os, const A& a);
}
typedef boost::shared_ptr<A> APtr; // Define A class smart pointer
APtr aPtr1(new A());
APtr aPtr2(new A());
APtr aPtr3(new A());
vector<APtr> AVec;
AVec.push_back(aPtr1);
AVec.push_back(aPtr2);
AVec.push_back(aPtr3);
std::copy(AVec.begin(),AVec.end(),
std:stream_iterator<APtr>(std::cout, "\n"));
===========================================(std::cout, "\n"));
The two copy methods only output the address of pointers, they could
just print the class A defined print contents. And following code
works :
===========================================
vector<APtr>::iterator i = AVec.begin();
for(; i!= AVec.end(); ++i){
cout << *static_cast<APtr>(*i) << endl;
}
===========================================
Anyone has some ideas for that ? Thank you in advance.
Jun