Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [c++]inline e .inc

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2003
    Messaggi
    4,826

    [c++]inline e .inc

    ciao.
    Ho questa classe di un progetto open sorce,
    codice:
    #ifndef WM5RTTI_H
    #define WM5RTTI_H
    
    #include "Wm5CoreLIB.h"
    
    namespace Wm5
    {
    
    class WM5_CORE_ITEM Rtti
    {
    public:
        // Construction and destruction.  The name must be unique among all
        // objects in the system.  In the Wm5 namespace, a class Foo should use
        // "Wm5.Foo".  If an application has another namespace, SomeName, then
        // the name should be "SomeName.Foo".
        Rtti (const char* name, const Rtti* baseType);
        ~Rtti ();
    
        inline const char* GetName () const;
        inline bool IsExactly (const Rtti& type) const;
        bool IsDerived (const Rtti& type) const;
    
    private:
        const char* mName;
        const Rtti* mBaseType;
    };
    
    #include "Wm5Rtti.inl"
    
    }
    questo è il .inl
    codice:
    //----------------------------------------------------------------------------
    inline const char* Rtti::GetName () const
    {
        return mName;
    }
    //----------------------------------------------------------------------------
    inline bool Rtti::IsExactly (const Rtti& type) const
    {
        return (&type == this);
    }
    e questo il .cpp:

    codice:
    using namespace Wm5;
    
    //----------------------------------------------------------------------------
    Rtti::Rtti (const char* name, const Rtti* baseType)
    {
        mName = name;
        mBaseType = baseType;
    }
    //----------------------------------------------------------------------------
    Rtti::~Rtti ()
    {
    }
    //----------------------------------------------------------------------------
    bool Rtti::IsDerived (const Rtti& type) const
    {
        const Rtti* search = this;
        while (search)
        {
            if (search == &type)
            {
                return true;
            }
            search = search->mBaseType;
        }
        return false;
    }
    //----------------------------------------------------------------------------

    perchè usa un .inl per dichiarare delle funzioni inline?
    perchè mette alcune funzioni inline e non tutte?
    è solo una delle tante classi del progetto che lo fanno.
    perchè?

    grazie.

  2. #2
    Utente di HTML.it L'avatar di shodan
    Registrato dal
    Jun 2001
    Messaggi
    2,381
    This code and information is provided "as is" without warranty of any kind, either expressed
    or implied, including but not limited to the implied warranties of merchantability and/or
    fitness for a particular purpose.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.