/trunk/Examples/ruby/mark_function/example.h
C++ Header | 49 lines | 30 code | 11 blank | 8 comment | 0 complexity | 9dd5ee473a44a6b1b1efe4a501478e39 MD5 | raw file
Possible License(s): LGPL-2.1, Cube, GPL-3.0, 0BSD, GPL-2.0
- #ifndef _EXAMPLE_H_
- #define _EXAMPLE_H_
- #include <vector>
- #include <string>
- class Animal
- {
- protected:
- std::string name_;
- public:
- // Construct an animal with a name
- Animal(const char* name);
- // Destruct an animal
- ~Animal();
- // Return the animal's name
- const char* get_name() const;
- };
-
- class Zoo
- {
- private:
- typedef std::vector<Animal*> AnimalsType;
- typedef AnimalsType::iterator IterType;
- protected:
- AnimalsType animals;
- public:
- Zoo();
- ~Zoo();
- /* Create a new animal */
- static Animal* create_animal(const char* name);
- /* Add a new animal to the zoo */
- void add_animal(Animal* animal);
-
- /* Remove an animal from the zoo */
- Animal* remove_animal(size_t i);
- /* Return the number of animals in the zoo */
- size_t get_num_animals() const;
-
- /* Return a pointer to the ith animal */
- Animal* get_animal(size_t i) const;
- };
- #endif /*_EXAMPLE_H_*/