diff --git a/.gitignore b/.gitignore index 9ef9604..67f0073 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ build +.cache diff --git a/include/shapes/Rectangle.hpp b/include/shapes/Rectangle.hpp index 64434bd..c6ef150 100644 --- a/include/shapes/Rectangle.hpp +++ b/include/shapes/Rectangle.hpp @@ -1,12 +1,15 @@ +#ifndef RECTANGLE +#define RECTANGLE + #include "Shape.hpp" -struct Rectangle : public Shape -{ +struct Rectangle : public Shape { Rectangle(const double sideLen); - double area() override; + double area() const override; private: double sideLen{}; }; +#endif diff --git a/include/shapes/Shape.hpp b/include/shapes/Shape.hpp index dfb94f9..ceb9562 100644 --- a/include/shapes/Shape.hpp +++ b/include/shapes/Shape.hpp @@ -1,11 +1,14 @@ +#ifndef SHAPE +#define SHAPE + #include #include struct Shape { - virtual double area() = 0; + virtual double area() const = 0; - double getArea(); + double getArea() const; protected: Shape() = delete; @@ -13,3 +16,5 @@ protected: size_t numSides{}; }; + +#endif diff --git a/include/shapes/Triangle.hpp b/include/shapes/Triangle.hpp index 79a1dd2..ed4984a 100644 --- a/include/shapes/Triangle.hpp +++ b/include/shapes/Triangle.hpp @@ -1,11 +1,16 @@ +#ifndef TRIANGLE +#define TRIANGLE + #include "Shape.hpp" struct Triangle : public Shape { Triangle(const double sideLen); - double area() override; + double area() const override; private: double sideLen{}; }; + +#endif diff --git a/src/shapes/Rectangle.cpp b/src/shapes/Rectangle.cpp index a126755..26fba35 100644 --- a/src/shapes/Rectangle.cpp +++ b/src/shapes/Rectangle.cpp @@ -1,5 +1,5 @@ #include "Rectangle.hpp" -Rectangle::Rectangle(const double sideLen) : sideLen(sideLen) {} +Rectangle::Rectangle(const double sideLen) : Shape(sideLen) {} -Rectangle::area() { return sideLen * sideLen; } +double Rectangle::area() const { return sideLen * sideLen; } diff --git a/src/shapes/Shape.cpp b/src/shapes/Shape.cpp index faa7096..b87dbed 100644 --- a/src/shapes/Shape.cpp +++ b/src/shapes/Shape.cpp @@ -5,4 +5,4 @@ Shape::Shape(const size_t numSides) : numSides(numSides) } -double Shape::getArea(){ return area(); } +double Shape::getArea() const{ return area(); } diff --git a/src/shapes/Triangle.cpp b/src/shapes/Triangle.cpp index 13087af..66d3353 100644 --- a/src/shapes/Triangle.cpp +++ b/src/shapes/Triangle.cpp @@ -1,5 +1,5 @@ #include "Triangle.hpp" -Triangle::Triangle(const double sideLen) : sideLen(sideLen) {} +Triangle::Triangle(const double sideLen) : Shape::Shape(sideLen) { } -Triangle::area() { return 0.5 * sideLen * sideLen; } +double Triangle::area() const { return 0.5 * sideLen * sideLen; } diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 4cbf914..f28530e 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -2,8 +2,6 @@ add_executable(unittest ${CMAKE_CURRENT_LIST_DIR}/TestShape.cpp ) -message("${CMAKE_CURRENT_LIST_DIR}/TestShape.cpp") - target_link_libraries(unittest PUBLIC Shapes gtest_main diff --git a/test/TestShape.cpp b/test/TestShape.cpp index 3801d5b..f89ada6 100644 --- a/test/TestShape.cpp +++ b/test/TestShape.cpp @@ -1,4 +1,4 @@ -#include +#include #include "Rectangle.hpp" #include "Triangle.hpp"