
----Original Message---- From: H. van Niekerk [mailto:h.v.niekerk@hccnet.nl] Sent: 20 June 2005 19:22 To: boost@lists.boost.org Subject: [boost] shared_ptr question
Hi,
I'm rather new to shared_ptr and I'm not very experienced in programmer with C++ but have to do it anyway. My problem is this: I have 3 .cpp files, e.g. Master.cpp, Client.cpp and Satellite.cpp.
Originally, Master.cpp is the only .cpp file, and uses auto_ptr to enable writing and reading from an interface. Like this:
{ .... auto_ptr<FtInterface> fti (ftGetIfFromFactory(device, connection)); fti->getIfInfo(ii); IfOutputs out; // to set interface outputs (ctor clears // everything to 0) IfInputs inp; // to be read from interface fti->writeAndReadAllData(out, inp); ... }
This works well with every action taking place in this file. Now, as said I have those 3 .cpp files. Master.cpp sends an argument to Client.cpp and Client.cpp sends it to Satellite.cpp. Satellite.cpp reads from the interface, and sends it back via Client.cpp to Master.cpp. I can't use auto_ptr with this and from the Boost-documentation I can't figure out exactly how to use shared_ptr for this. Can somebody please help me out?
I hope I explained my problem clear enough.
I'm afraid you didn't. Could you write some sample (pseudo-) code just using raw C pointers and not worrying about memory leaks? Then we can probably work out how to rewrite using smart pointers. Incidentally, I don't think the presence of three .cpp files is directly relevent. I suspect that the relevent factor is that you have three *functions*, and your problem is passing the data between them. -- Martin Bonner Martin.Bonner@Pitechnology.com Pi Technology, Milton Hall, Ely Road, Milton, Cambridge, CB4 6WZ, ENGLAND Tel: +44 (0)1223 441434