Computer Networking: A Top-Down Approach (7th Edition)
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN: 9780133594140
Author: James Kurose, Keith Ross
Publisher: PEARSON
Bartleby Related Questions Icon

Related questions

Question

Implement the functions given, instructions of what each function needs to do are given in their respective comments. Only need a smart_ptr.h file. 

template <typename T>
class smart_ptr {
public:
smart_ptr();
// Create a smart_ptr that is initialized to nullptr. The
// reference count should be initialized to nullptr.
explicit smart_ptr(T* raw_ptr);
// Create a smart_ptr that is initialized to raw_ptr. The
// reference count should be one. Make sure it points to
// the same pointer as the raw_ptr.
smart_ptr (const smart_ptr& rhs);
// Copy construct a pointer from rhs. The reference count
// should be incremented by one.
smart_ptr(smart_ptr&& rhs);
// Move construct a pointer from rhs.
smart_ptr& operator= (const smart_ptr& rhs);
// This assignment should make a shallow copy of the
// right-hand side's pointer data. The reference count
// should be incremented as appropriate.
smart_ptr& operator=(smart_ptr&& rhs);
// This move assignment should steal the right-hand side's
// pointer data.
bool clone () ;
// If the smart_ptr is either nullptr or has a reference
// count of one, this function will do nothing and return
// false. Otherwise, the referred to object's reference
// count will be decreased and a new deep copy of the
expand button
Transcribed Image Text:template <typename T> class smart_ptr { public: smart_ptr(); // Create a smart_ptr that is initialized to nullptr. The // reference count should be initialized to nullptr. explicit smart_ptr(T* raw_ptr); // Create a smart_ptr that is initialized to raw_ptr. The // reference count should be one. Make sure it points to // the same pointer as the raw_ptr. smart_ptr (const smart_ptr& rhs); // Copy construct a pointer from rhs. The reference count // should be incremented by one. smart_ptr(smart_ptr&& rhs); // Move construct a pointer from rhs. smart_ptr& operator= (const smart_ptr& rhs); // This assignment should make a shallow copy of the // right-hand side's pointer data. The reference count // should be incremented as appropriate. smart_ptr& operator=(smart_ptr&& rhs); // This move assignment should steal the right-hand side's // pointer data. bool clone () ; // If the smart_ptr is either nullptr or has a reference // count of one, this function will do nothing and return // false. Otherwise, the referred to object's reference // count will be decreased and a new deep copy of the
// object will be created. This new copy will be the
// object that this smart_ptr points and its reference
// count will be one.
int ref_count () const;
// Returns the reference count of the pointed to data.
T& operator* () ;
// The dereference operator shall return a reference to
// the referred object. Throws null_ptr_exception on
// invalid access.
T* operator->();
// The arrow operator shall return the pointer ptr_.
// Throws null_ptr_exception on invalid access.
* smart_ptr();
// deallocate all dynamic memory
private:
// pointer to the referred object
// pointer to a reference count
T* ptr_;
int* ref_;
} ;
expand button
Transcribed Image Text:// object will be created. This new copy will be the // object that this smart_ptr points and its reference // count will be one. int ref_count () const; // Returns the reference count of the pointed to data. T& operator* () ; // The dereference operator shall return a reference to // the referred object. Throws null_ptr_exception on // invalid access. T* operator->(); // The arrow operator shall return the pointer ptr_. // Throws null_ptr_exception on invalid access. * smart_ptr(); // deallocate all dynamic memory private: // pointer to the referred object // pointer to a reference count T* ptr_; int* ref_; } ;
Expert Solution
Check Mark
Knowledge Booster
Background pattern image
Recommended textbooks for you
Text book image
Computer Networking: A Top-Down Approach (7th Edi...
Computer Engineering
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:PEARSON
Text book image
Computer Organization and Design MIPS Edition, Fi...
Computer Engineering
ISBN:9780124077263
Author:David A. Patterson, John L. Hennessy
Publisher:Elsevier Science
Text book image
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:9781337569330
Author:Jill West, Tamara Dean, Jean Andrews
Publisher:Cengage Learning
Text book image
Concepts of Database Management
Computer Engineering
ISBN:9781337093422
Author:Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:Cengage Learning
Text book image
Prelude to Programming
Computer Engineering
ISBN:9780133750423
Author:VENIT, Stewart
Publisher:Pearson Education
Text book image
Sc Business Data Communications and Networking, T...
Computer Engineering
ISBN:9781119368830
Author:FITZGERALD
Publisher:WILEY