- #include <iostream> 
- #include <vector> 
- using namespace std; 
-   
- #define Training  // to declare the global variable 
-   
- ///Definition of class Pocket 
- class pocket 
- { 
-   public: 
-       double volume; 
- }; 
-   
- ///Definition of virtual class TrainerClass 
- class TrainerClass 
- { 
-   public: 
-     pocket *Space; 
-     virtual void AddItems()=0; 
- }; 
-   
- ///Definition of derived class 
- class BagClass: public TrainerClass 
- { 
-   public: 
-       double mass; 
-   
-       BagClass(double m2) 
-       { 
-         mass=m2; 
-       } 
-   
-       void AddItems() 
-       { 
-          cout <<  "out virtual "  << endl; 
-       } 
-  }; 
-   
- #ifdef Training 
- #define Training 
- TrainerClass **stuff=0; 
- #else 
- extern TrainerClass **stuff; 
- #endif 
-   
- int main() 
- { 
-     int nbrtrainer = 2; 
-   
-     vector<TrainerClass*> stuff(nbrtrainer);  // vector of the given dynamic size 
-     //for(int itrainer=0;itrainer<nbrtrainer;itrainer++)  
-     //   stuff[itrainer] = new TrainerClass; 
-   
-     stuff[0] = new BagClass(0.2); 
-     stuff[1] = new BagClass(0.5); 
-   
-     stuff[0]->AddItems(); 
-   
-     return 0; 
- } 
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBUcmFpbmluZyAgLy8gdG8gZGVjbGFyZSB0aGUgZ2xvYmFsIHZhcmlhYmxlCgovLy9EZWZpbml0aW9uIG9mIGNsYXNzIFBvY2tldApjbGFzcyBwb2NrZXQKewogIHB1YmxpYzoKICAgICAgZG91YmxlIHZvbHVtZTsKfTsKCi8vL0RlZmluaXRpb24gb2YgdmlydHVhbCBjbGFzcyBUcmFpbmVyQ2xhc3MKY2xhc3MgVHJhaW5lckNsYXNzCnsKICBwdWJsaWM6CiAgICBwb2NrZXQgKlNwYWNlOwogICAgdmlydHVhbCB2b2lkIEFkZEl0ZW1zKCk9MDsKfTsKCi8vL0RlZmluaXRpb24gb2YgZGVyaXZlZCBjbGFzcwpjbGFzcyBCYWdDbGFzczogcHVibGljIFRyYWluZXJDbGFzcwp7CiAgcHVibGljOgogICAgICBkb3VibGUgbWFzczsKCiAgICAgIEJhZ0NsYXNzKGRvdWJsZSBtMikKICAgICAgewogICAgICAgIG1hc3M9bTI7CiAgICAgIH0KCiAgICAgIHZvaWQgQWRkSXRlbXMoKQogICAgICB7CiAgICAgICAgIGNvdXQgPDwgICJvdXQgdmlydHVhbCAiICA8PCBlbmRsOwogICAgICB9CiB9OwoKI2lmZGVmIFRyYWluaW5nCiNkZWZpbmUgVHJhaW5pbmcKVHJhaW5lckNsYXNzICoqc3R1ZmY9MDsKI2Vsc2UKZXh0ZXJuIFRyYWluZXJDbGFzcyAqKnN0dWZmOwojZW5kaWYKCmludCBtYWluKCkKewogICAgaW50IG5icnRyYWluZXIgPSAyOwoKICAgIHZlY3RvcjxUcmFpbmVyQ2xhc3MqPiBzdHVmZihuYnJ0cmFpbmVyKTsgIC8vIHZlY3RvciBvZiB0aGUgZ2l2ZW4gZHluYW1pYyBzaXplCiAgICAvL2ZvcihpbnQgaXRyYWluZXI9MDtpdHJhaW5lcjxuYnJ0cmFpbmVyO2l0cmFpbmVyKyspIAogICAgLy8gICBzdHVmZltpdHJhaW5lcl0gPSBuZXcgVHJhaW5lckNsYXNzOwoKICAgIHN0dWZmWzBdID0gbmV3IEJhZ0NsYXNzKDAuMik7CiAgICBzdHVmZlsxXSA9IG5ldyBCYWdDbGFzcygwLjUpOwoKICAgIHN0dWZmWzBdLT5BZGRJdGVtcygpOwoKICAgIHJldHVybiAwOwp9