Frage

Ich habe diese Dokumentation einer ziemlich einfachen Klasse geschrieben, aber ich denke, es ist nicht klar genug. Soll ich etwas ändern?

/**
    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
        ResourceManager<T>::ResourceWrapper*>::iterator iter_;
};
War es hilfreich?

Lösung

Sie verpassen die Tatsache, dass diese Kommentare alle unnötig sind und nur dazu dienen, den Code schwieriger zu lesen und zu verstehen. Sie sind das Äquivalent von:

  i++; // increment i
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top