Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Nov 2, 2007, 2:28:23 AM (17 years ago)
Author:
landauf
Message:

no idea if this has any chance to work… template-syntax is crap

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/objecthierarchie/src/ClassHierarchy.h

    r149 r150  
    2222    class ObjectList;
    2323    class BaseObject;
     24    template <class T>
     25    class ClassIdentifier;
    2426
    2527    class Identifier
     
    2931
    3032        public:
    31 //            static Identifier* registerClass(IdentifierList* parents);
    3233            void addObject(BaseObject* object);
    3334            void removeObject(BaseObject* object);
     
    4041            bool isDirectParentOf(Identifier* identifier);
    4142
    42         protected:
     43        private:
    4344            Identifier();
    44             void initialize(IdentifierList* identifier);
    45 
    46             static Identifier* pointer_;
     45            void initialize(IdentifierList* parents);
    4746
    4847            IdentifierList* directParents_;
     
    5453            std::string name_;
    5554
    56         private:
    5755            bool bCreatedOneObject_;
    5856    };
     
    6159    class ClassIdentifier : public Identifier
    6260    {
    63 //        friend class Identifier;
    64 
    6561        public:
    66             static Identifier* registerClass(IdentifierList* parents);
    67             static Identifier* getIdentifier();
     62            static ClassIdentifier<T>* registerClass(IdentifierList* parents);
     63            static ClassIdentifier<T>* getIdentifier();
    6864            static T* create();
    6965
    7066        private:
    7167            ClassIdentifier();
     68
     69            static ClassIdentifier<T>* pointer_;
     70
    7271    };
    7372
    7473    #define getStringFromClassName(ClassName) \
    7574        #ClassName
     75
     76    template <class T>
     77    ClassIdentifier<T>* ClassIdentifier<T>::pointer_ = NULL;
    7678
    7779    template <class T>
     
    8183
    8284    template <class T>
    83     Identifier* ClassIdentifier<T>::registerClass(IdentifierList* parents)
     85    ClassIdentifier<T>* ClassIdentifier<T>::registerClass(IdentifierList* parents)
    8486    {
    8587        if (!pointer_)
     
    9496
    9597    template <class T>
    96     Identifier* ClassIdentifier<T>::getIdentifier()
     98    ClassIdentifier<T>* ClassIdentifier<T>::getIdentifier()
    9799    {
    98100        if (!pointer_)
Note: See TracChangeset for help on using the changeset viewer.