Smart Pointer in C++

90 Views Asked by At
#include<iostream>
using namespace std;

class SmartPointer
{
    private:
        int *ptr;

    public:
        SmartPointer(int *p);
        //int operator &();
        //int operator *();
        int &operator *() {  return *ptr; }
        ~SmartPointer();
};

SmartPointer::SmartPointer(int *p = NULL)
{
    cout<<"Initilaize ABC"<<endl;
    ptr = p;
}

SmartPointer::~SmartPointer()
{

    cout<<"De-Initilaize ABC"<<endl;
    delete ptr;
}
/*
int SmartPointer:: operator &()
{  
    return *ptr; 
}

int SmartPointer:: operator *()
{  
    return *ptr; 
}

*/
int main()
{
    int iNumber = 10;
    //int *ptrToNumber;
    SmartPointer a(new int());
    *a = 10;
    cout<<"value in a:"<<*a<<endl;
    cout<<"Address of a:"<<&a<<endl;

    return 0;
} 

Above is code for smart Pointer. but I am not getting few things.

1. int &operator *() { return *ptr; }

I not understand above.

1

There are 1 best solutions below

1
On BEST ANSWER
int &

Return value of this function is reference to int

operator *()

Override unary * (dereference) operator.

{  return *ptr; }

Return what is pointed.