Website Summary Files Commits Branches @commit @diff @stats
path: root / Sem. 14 / Farm / Collection / Farm.h
diff options
context:
space:
mode:
Commitf9cb26728021bf85a61f263fdb711c093a7f749a (patch)
Author
 angeld55 <angel_dimitriev@abv.bg>
2022-05-31 20:21:57 +0300
Committer
 angeld55 <angel_dimitriev@abv.bg>
2022-05-31 20:21:57 +0300
Files655fae8997b597c040d0dde06598a6414f64c21e /Sem. 14/Farm/Collection/Farm.h
Object-oriented_programming_FMI-f9cb26728021bf85a61f263fdb711c093a7f749a.tar
Object-oriented_programming_FMI-f9cb26728021bf85a61f263fdb711c093a7f749a.tar.gz
Object-oriented_programming_FMI-f9cb26728021bf85a61f263fdb711c093a7f749a.zip
Parente012bcac0a5c5fc804fbeadb0e8ab382c5e6feb7 (diff)
Sem 14
1 files changed, 32 insertions, 0 deletions
-rw-r--r--Sem. 14/Farm/Collection/Farm.h32
diff --git a/Sem. 14/Farm/Collection/Farm.h b/Sem. 14/Farm/Collection/Farm.h
new file mode 100644
index 0000000..7742973
--- /dev/null
+++ b/Sem. 14/Farm/Collection/Farm.h
@@ -0,0 +1,32 @@
+#pragma once
+#include "../Animals/Animal.h"
+#include "../Factory/Factory.h"
+
+class Farm
+{
+ Animal** animals;
+ size_t animalsCount;
+ size_t capacity;
+
+ void free();
+ void copyFrom(const Farm& other);
+ void resize();
+
+ AnimalFactory factory; //better singelton
+
+public:
+ Farm();
+ Farm(const Farm& other);
+ Farm& operator=(const Farm& other);
+ ~Farm();
+
+ void addAnimal(const Animal& animal);
+ bool addAnimal(Animal::AnimalType animalType);
+
+ void allSayHello() const;
+
+ size_t getCount() const;
+ bool isEmpty() const;
+
+ Animal::AnimalType getTypeByIndex(size_t index) const;
+};