В одном из методов класса string надо вернуть экземпляр данного класса
BasicString substr(size_t idx) {
BasicString newStr = new BasicString;
for (size_t i = idx; i < size(); i++)
newStr.push_back(mData[i]);
return newStr;
}
при вызове метода происходит следующее
BasicString str = "qwerty";
str = str.substr(2);
оператор = перегружен следующим образом
BasicString operator= (const BasicString other) {
this->clear();
for (size_t i = 0; i < other.size(); i++) {
push_back(other[i]);
}
return this;
}
то есть получается что я выделяю память под newStr, но мне негде ее освободить и получаю утечку, как от нее избавиться?