원시 포인터의 기능에 대한 액세스를 제공하는 "프록시"또는 "가짜"포인터 뒤에 원시 포인터를 숨기는 방법이 있습니까?"프록시"포인터를 제공하여 원시 포인터를 숨기기
과 같이 볼 수있는 원시 포인터에 대한 관리 클래스는 다음과 같습니다
template<typename T>
class hidden_ptr
{
public:
hidden_ptr(T *RawPointer);
~hidden_ptr();
T *get()
{
return new proxy_pointer<T>(raw_pointer)
}
};
그런 다음이 기능을 사용하려면 방법이 있으면
class Foo
{
public:
Foo();
~Foo();
void do_bar();
void do_bar2();
};
int main()
{
Foo *raw_pointer = new Foo();
hidden_ptr<Foo> hidden(raw_pointer);
Foo *proxy = hidden.get();
proxy->do_bar();
proxy->do_bar2();
delete proxy; //The raw pointer is still safe till the hidden object destructs
}
, 무엇 proxy_ptr의 모습?
질문에 대답하려면 : 예, 대부분의 경우이를 수행 할 수있는 방법이 있습니다. –
[shared_ptr] (http://en.cppreference.com/w/cpp/memory/shared_ptr)과 유사합니다. – Steve
달성하려는 목표에 대해 확실하지 않지만 "스마트 포인터"를 조사 할 수 있습니다. – MrEricSir