-1
#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;
}
Выше кода для умного указателя. но я не получаю мало вещей.Smart Pointer in C++
1. int &operator *() { return *ptr; }
Я не понимаю выше.
получил его, 'int &' - возвращаемое значение. –