code refactoring: fix memory leaks, code style, etc.

This commit is contained in:
Jakub Vojvoda
2019-01-31 19:57:40 +01:00
parent a8681552c4
commit a0b0ea4f8e
24 changed files with 960 additions and 566 deletions

View File

@@ -14,16 +14,20 @@
* AbstractClass
* implements a template method defining the skeleton of an algorithm
*/
class AbstractClass {
class AbstractClass
{
public:
void templateMethod() {
virtual ~AbstractClass() {}
void templateMethod()
{
// ...
primitiveOperation1();
// ...
primitiveOperation2();
// ...
}
virtual void primitiveOperation1() = 0;
virtual void primitiveOperation2() = 0;
// ...
@@ -35,14 +39,19 @@ public:
* of the algorithm, there may be many Concrete classes, each implementing
* the full set of the required operation
*/
class ConcreteClass : public AbstractClass {
class ConcreteClass : public AbstractClass
{
public:
void primitiveOperation1() {
~ConcreteClass() {}
void primitiveOperation1()
{
std::cout << "Primitive operation 1" << std::endl;
// ...
}
void primitiveOperation2() {
void primitiveOperation2()
{
std::cout << "Primitive operation 2" << std::endl;
// ...
}
@@ -54,6 +63,7 @@ int main()
{
AbstractClass *tm = new ConcreteClass;
tm->templateMethod();
delete tm;
return 0;
}