生ポインタのアドレスを明らかにせずに生ポインタの機能へのアクセスを提供する "プロキシ"または "偽"ポインタの後ろに生ポインタを隠す方法はありますか?その後"プロキシ"ポインタを提供して生ポインタを隠す
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://ja.cppreference.com/w/cpp/memory/shared_ptr)のように聞こえます。 – Steve
あなたが達成しようとしていることは完全には分かっていませんが、「スマートポインタ」を調べることもできます。 – MrEricSir