What is a smart pointer?
Answers were Sorted based on User's Feedback
Answer / akhilesh kumar jaiswal
A smart pointer is an object that acts, looks and feels like a normal pointer but offers more functionality. In C++, smart pointers are implemented as template classes that encapsulate a pointer and override standard pointer operators. They have a number of advantages over regular pointers. They are guaranteed to be initialized as either null pointers or pointers to a heap object. Indirection through a null pointer is checked. No delete is ever necessary. Objects are automatically freed when the last pointer to them has gone away. One significant problem with these smart pointers is that unlike regular pointers, they don't respect inheritance. Smart pointers are unattractive for polymorphic code. Given below is an example for the implementation of smart pointers.
Example:
template <class X>
class smart_pointer
{
public:
smart_pointer(); // makes a null pointer
smart_pointer(const X& x) // makes pointer to copy of x
X& operator *( );
const X& operator*( ) const;
X* operator->() const;
smart_pointer(const smart_pointer <X> &);
const smart_pointer <X> & operator =(const smart_pointer<X>&);
~smart_pointer();
private:
//...
};
This class implement a smart pointer to an object of type X. The object itself is located on the heap. Here is how to use it:
smart_pointer <employee> p= employee("Harris",1333);
Like other overloaded operators, p will behave like a regular pointer,
cout<<*p;
p->raise_salary(0.5);
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / nashiinformaticssolutions
A smart pointer is a C++ class that manages the lifetime of a dynamically allocated object.
| Is This Answer Correct ? | 0 Yes | 0 No |
How is new() different from malloc()?
Eplain extern keyword?
What happens when a function throws an exception that was not specified by an exception specification for this function?
State the difference between pre and post increment/decrement operations.
What is a c++ map?
What is c++ & why it is used?
Will c++ be replaced?
If you hear the cpu fan is running and the monitor power is still on, but you did not see anything show up in the monitor screen. What would you do to find out what is going wrong?
Explain static and dynamic memory allocation with an example each.
Will this c++ program execute or not?
What is the extraction operator and what does it do?
What are stacks? Give an example where they are useful.