开发者

Is this documentation missing anything?

I've written this documentation of a rather simple class, but I feel it's not clear enough. Should I change anything?

/**
    Pointer class that wraps resources loaded through the ResourceManager.
    The manager is notified to increase or decrease the reference count of
    a resource, as a ResourcePtr gets copied, created, or deleted.

    If a resource has a reference count of zero, the ResourceManager will
    delete it. The reference count of a resource is the same as the number
    of ResourcePtr objects that reference it.

    \see ResourceManager
                                                                             */
template<class T>
class ResourcePtr
{
  public:
    /**
        Default constructor. Creates an empty ResourcePtr that does not
        reference any resource. 
                                                                             */
    ResourcePtr();
    /**
        Copy constructor. Create a copy and increase the reference count
        of the resource referenced by the ResourcePtr being copied, if any.
                                                                             */
    ResourcePtr(const ResourcePtr<T>& other);
    /**
        Destroy the ResourcePtr and release one reference to the resource
        it points to, if any. The resource is deleted if there are no more
        ResourcePtr objects that reference it. 
                                                                             */
    ~ResourcePtr();

    /**
        Access the resource inside the ResourcePtr.
        \return Pointer to the resource or null if ResourcePtr is empty.
                                                                             */
    const T* get() const;
    /**
        Arrow operator. Provided for convenience to access members of
        the resource class directly, without having to first call get().
        An assertion failure occurs if the ResourcePtr is empty.
                                                                             */
    const T* operator->() const;
    /**
        Assignment operator. Release the resource currently pointing to,
        if any. Copy the data from the other ResourcePtr and increase
        the reference count of the resource it points to, if any.
                                                                             */
    ResourcePtr<T>& operator=(const ResourcePtr<T>& other);

  private:
    friend class ResourceManager<T>;
    typename std::list<typename
        开发者_如何学CResourceManager<T>::ResourceWrapper*>::iterator iter_;
};


You are missing the fact that those comments are all unecessary, and only serve to make the code more difficult to read and understand. They are the equivalent of:

  i++; // increment i
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜