Ошибка: у класса «LL» нет члена тега «prepend»

0

Я создаю связанную структуру списка, и я не совсем уверен, как вызвать функцию, которая работает со связанным списком. Когда я пытаюсь вызвать функцию, мне говорят, что ее не существует, когда у меня уже есть конструктор по умолчанию в моей struct LL.

#include <iostream>

struct Node {
    int data;
    Node* next;
};
struct LL {
    Node* head;
    void prepend(int data);
};
void LL::prepend(int data) {
    Node* temp = new Node();
    temp -> data = data;
    temp -> next = head;
    head = temp;
}
int main() {
    struct LL::prepend(3);
    return 0;
}

В моей main функции struct LL::prepend(3); где я получаю ошибку, хотя prepend является членом LL.

Теги:
struct
linked-list

1 ответ

0
Лучший ответ

LL::prepend не является статической функцией-членом struct LL, вы должны называть ее объектом

int main() {
    LL ll;         // create LL object
    ll.prepend(3); // call ll object member function
    return 0;
}

Или если вы используете указатель (только для примера того, как использовать указатель)

int main() {
    LL *ll = new LL();         // create LL object
    ll->prepend(3); // call ll object member function
    delete ll;
    return 0;
}
  • 0
    Таким образом, это единственный способ вызвать функцию структуры в C ++? Создав в этом случае объект связанного списка, а затем вызвав функцию через этот объект? Также, ll -> prepend (3); работать так же?
  • 0
    если вы используете указатель, вы можете вызвать operator->
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню