Question
What is a smart pointer?

Answers

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 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 &);
const smart_pointer & operator =(const smart_pointer&);
~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 p= employee("Harris",1333);
Like other overloaded operators, p will behave like a regular pointer,
cout<<*p;
p->raise_salary(0.5);   Your Comment






Search
Can you Answer!!
  • Q Name the new scheme launched by the Government of India to cover all households in the country with banking facilities.
  • Q With what is spangy played
  • Q Role of calcium in biological systems
  • Q What is "the_time() function" in cms?
  • Q Which vitamin protects human body from Pellagra desease?
  • Q Saji Thomas is related to which game?
  • Q The arils of motor cars are made up of:
  • Q On "Sesame Street," what is the name of Big Bird's teddy bear
  • Q Which team won the Beighton Cup Hockey tournament?
  • Q What is apache hbase ?
  • Q Describe the organization of a typical practice.