-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」は戻り値です。 –