5

私はこのコードを理解しようとします(ここから取られます):

template <class T> class auto_ptr
{
    T* ptr;
public:
    explicit auto_ptr(T* p = 0) : ptr(p) {}
    ~auto_ptr()                 {delete ptr;}
    T& operator*()              {return *ptr;}
    T* operator->()             {return ptr;}
    // ...
};

コードのこの行を理解するのに問題があります: explicit auto_ptr(T* p = 0) : ptr(p) {}.

私の知る限り、この行では、pointer-to-object-of-T-class型の引数を 1 つ持つコンストラクターを定義しようとしています。次に、 があり= 0ます。それは何ですか?デフォルト値ですか?しかし、どのよう0にポインターのデフォルト値にすることができますか (ポインターは、整数ではなく値としてアドレスを持つ必要があります)。

4

2 に答える 2