From e82491b4c5331dcd854a446df01a9c76c0e50369 Mon Sep 17 00:00:00 2001 From: Angeld55 Date: Sat, 21 Sep 2019 12:08:32 +0300 Subject: Add files via upload --- DiamondProblemAndPolymorphism/Chess/Queen.hpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 DiamondProblemAndPolymorphism/Chess/Queen.hpp (limited to 'DiamondProblemAndPolymorphism/Chess/Queen.hpp') diff --git a/DiamondProblemAndPolymorphism/Chess/Queen.hpp b/DiamondProblemAndPolymorphism/Chess/Queen.hpp new file mode 100644 index 0000000..84ce90e --- /dev/null +++ b/DiamondProblemAndPolymorphism/Chess/Queen.hpp @@ -0,0 +1,22 @@ +#include "Figure.hpp" + +class Queen : public Bishop, public Rook +{ +public: + Queen(int xCoordinate, int yCoordinate, bool isWhite) :Figure(xCoordinate, yCoordinate, isWhite), Bishop(xCoordinate, yCoordinate, isWhite), Rook(xCoordinate, yCoordinate, isWhite) + {} + bool Move(int xNew, int yNew); + void Print(); +}; + +void Queen::Print() +{ + cout << 'Q'; +} +bool Queen::Move(int xNew, int yNew) // Тук сме наследили 2 функционалности. Имаме конфликт, трябва да дефинираме наша(използвайки предишните, ако искаме) +{ + bool res = Rook::Move(xNew, yNew);//Пробвай да се движиш като топ(по права линия) + if (res) //Ако е успял - вс е ок + return true; + return Bishop::Move(xNew, yNew); //Ако не си успял като топ, пробвай като офицер. +} \ No newline at end of file -- cgit v1.3.1-23-gd82d