diff --git a/src/variables/variable.h b/src/variables/variable.h index a625a994..bd354b0c 100644 --- a/src/variables/variable.h +++ b/src/variables/variable.h @@ -64,6 +64,7 @@ class Variable { explicit Variable(std::string _name); Variable(std::string name, VariableKind kind); + virtual ~Variable() { } static std::string to_s(std::vector *variables); diff --git a/src/variables/variations/count.h b/src/variables/variations/count.h index 34eb9a5d..97ffbfa4 100644 --- a/src/variables/variations/count.h +++ b/src/variables/variations/count.h @@ -34,6 +34,7 @@ class Count : public Variable { explicit Count(Variable *v) : Variable("count(" + v->m_name + ")"), var(v) { } + virtual ~Count() { delete var; } void evaluateInternal(Transaction *transaction, std::vector *l) override; diff --git a/src/variables/variations/exclusion.h b/src/variables/variations/exclusion.h index fc3d0bc8..bb1faa1a 100644 --- a/src/variables/variations/exclusion.h +++ b/src/variables/variations/exclusion.h @@ -37,6 +37,8 @@ class Exclusion : public Variable { var(v) { m_isExclusion = true; } + virtual ~Exclusion() { delete var; } + void evaluateInternal(Transaction *transaction, std::vector *l) override;