Уничтожить производный класс из двух пониженных ссылок [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Уничтожить производный класс из двух пониженных ссылок [закрыто]

Сообщение Anonymous »

Код: Выделить всё

struct Data {
// some fields
};

struct E : public virtual Data {
// some fields
};

struct A : public E {};
struct B : public E {};

struct EE : A, B {
E& a() {
return *static_cast(this);
}
E& b() {
return *static_cast(this);
}
};

Код: Выделить всё

int main() {
std::vector vec;

for (size_t i = 0; i < 10; ++i) {
auto ee = new EE(...);
vec.push_back(ee->a());
vec.push_back(ee->b());
}

// shuffle the `vec`

// your code may go here as well

for (size_t i = 0; i < 20; ++i) {
// your code goes here
}

// At this point All `EE` must be correctly `deleted`
}
Я создаю значения EE и для каждого сохраняю 1 ссылку из a() и 1 ссылку из b() в векторе . После этого я перетасовываю контейнер и перебираю его. После итерации все EE должны быть уничтожены. Как это можно сделать? Есть ли решение, не предполагающее редактирования структуры Data, E и EE?


Подробнее здесь: https://stackoverflow.com/questions/798 ... references
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»