Website Summary Files Commits Branches @commit @diff @stats
path: root / Polymorphism / Farm(cloneFunction)
diff options
context:
space:
mode:
1 files changed, 17 insertions, 0 deletions
-rw-r--r--Polymorphism/Farm(cloneFunction)/Animal.hpp17
diff --git a/Polymorphism/Farm(cloneFunction)/Animal.hpp b/Polymorphism/Farm(cloneFunction)/Animal.hpp
new file mode 100644
index 0000000..7f0a0ab
--- /dev/null
+++ b/Polymorphism/Farm(cloneFunction)/Animal.hpp
@@ -0,0 +1,17 @@
+#include "Animal.hpp"
+
+class Animal
+{
+
+ String name;
+public:
+ Animal(String name)
+ {
+ this->name = name;
+ }
+ virtual void Roar() = 0;
+ virtual Animal* clone() = 0; // Всеки наследник се копира по различен начин.
+ // За това правим тази виртуална функция и всеки наследник да окаже как се копират данните му.
+ virtual ~Animal() {};
+
+};