Наследование классов - есть ли утечка памяти?
От: prrt  
Дата: 13.08.13 08:22
Оценка:
Есть такой С++ код:

class Base {};

class Child : Base
{
    struct Data { /* some data */ };
    Data data;
};

//-----------------------------------
int main() {
    
    std::vector<Base*> bases;
    {
        Child* child = new Child();
        bases.push_back(reinterpret_cast<Base*>(child));
    }
    delete bases.back();
    
    return 0;
}


Т.к. при его выполнении деструктор структуры Data вызван не будет, то произойдет ли утечка памяти? Или после выполнения строки

    bases.push_back(reinterpret_cast<Base*>(child));


аллокатор памяти программы отметит память, занимаемую структурой Data как освободившуюся и утечки не будет?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.