-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;
}
上面是智能指针的代码。但我没有得到什么东西。C++中的智能指针
1. int &operator *() { return *ptr; }
我不明白上面。
得到它,'int&'是返回值。 –