У меня естьКак создать связанный список с несколькими экземплярами классов?
class A{
}
class B : virtual public A{
extra property 1
}
class C : virtual public A{
extra property 2
}
class D : virtual public A{
}
class E : virtual public B, virtual public C, virtual public D{
extra property 3
}
А вот вставки функции моего Связанный список по:
template <typename T>
class LinkedList {
Node<T> *start;
Node<T> *current;
public:
void insert (T newElement)
{
if (isEmpty())
{
insertToStart(newElement);
}
else
{
Node<T> *newNode = new Node<T>;
newNode->info = newElement;
newNode->next = NULL;
current = start;
while (current->next != NULL)
{
current = current->next;
}
current->next = newNode;
}
}
Теперь я хотел бы создать единый связанный список, который будет хранить все экземпляры B, C и D, не теряя дополнительный атрибут каждого дочернего класса. Как я могу достичь этого с помощью указателя? Я пробовал решение here, но он дает мне эту ошибку: с адресом временного [-fpermissive].
Linkedlist<A*> list;
B b;
list.insert(&b);
Решение вы связаны с использований 'станд :: list', [и работает на coliru] (HTTP: // coliru.stacked-crooked.com/a/a125e012d59d1b35). Что такое 'LinkedList'? Это не 'std ::', а 'insert()' не имеет перегрузки, которая принимает только один параметр. – JBL
Я только что редактировал сообщение, чтобы показать публичную функцию связанного списка! – user3049955
На какой строке это ошибки? «Вставить»? Или другие? (В частности, проверьте, не являются ли ошибки на 'insert'line, что это не только часть стека вызовов). – JBL