Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: orxonox.OLD/trunk/src/lib/lang/test_object_list.cc @ 9679

Last change on this file since 9679 was 9679, checked in by bensch, 18 years ago

inheritance tree works perfectly

File size: 2.0 KB
Line 
1#include "new_class_id.h"
2#include "new_object_list.h"
3#include <iostream>
4
5#include <base_object.h>
6
7class NewBaseObject
8{
9public:
10  //   void setName(const std::string& name) { this->_objectName = name; };
11     const std::string& getName() const { return _objectName; };
12  //   bool operator==(const std::string& name) const { return _objectName == name; };
13
14    NewObjectListDeclaration(NewBaseObject);
15
16protected:
17  NewBaseObject(const std::string& objectName = "") : _objectName(objectName)
18  {
19       this->registerObject(this, objectList);
20  };
21  template<class T>
22  inline void registerObject(T* object, NewObjectList<T>& objectList) { _id.registerObject(object, objectList); };
23protected:
24  NewClassID    _id;
25  std::string   _objectName;
26
27
28};
29NewObjectListDefinition(NewBaseObject);
30
31
32class Test :
33      public   NewBaseObject
34//    ,
35//      public BaseObject
36{
37public:
38  Test();
39  ~Test();
40
41
42  NewObjectListDeclaration(Test);
43  //ObjectListDeclaration(Test);
44};
45NewObjectListDefinitionID(Test, -1);
46
47Test::Test()
48{
49  this->registerObject(this, Test::objectList);
50
51
52//  this->setClassID(CL_PARENT_NODE, "Test");
53  // std::cout << "Test()\n";
54};
55Test::~Test()
56{
57  //  std::cout << "~Test()\n";
58}
59
60class Bone : public Test
61{
62public:
63  Bone()
64  {
65    this->registerObject(this, Bone::objectList);
66    this->_id.listInheritance();
67
68    //std::cout << "Bone()\n";
69  };
70  ~Bone()
71  {
72    //  std::cout << "~Bone()\n";
73  };
74  NewObjectListDeclaration(Bone);
75};
76NewObjectListDefinitionID(Bone, -1);
77
78int main()
79{
80  for (unsigned int i = 0; i < 20; ++i)
81  {
82    std::cout<< i << std::endl;
83    Bone* test = new Bone[10000];
84    // delete[]test;
85  }
86  //   char tmp[100];
87  //   for (unsigned int i = 0 ; i < 100; ++i)
88  //   {
89  //     sprintf(tmp, "Tmp_%d", i);
90  //     test[i].setName(tmp);
91  //   }
92  //   Test::objectList.debug();
93  //   //test->setName("Test-object");
94  //
95  //   std::cout << "Here is debug of all BaseObject\n";
96  //   BaseObject::objectList.debug();
97  // //   delete bone;
98  //   delete []test;
99  //   std::cout << "Again\n";
100  //   BaseObject::objectList.debug();
101
102}
103
Note: See TracBrowser for help on using the repository browser.