Кажется, мне трудно активировать функцию-член класса для класса узла, который я пытаюсь реализовать в классе массива для связанного списка. Буду признателен за любую помощь в указании на проблему. Это соответствующие блоки кода:
#ifndef LINK_H
#define LINK_H
#include <iostream>
#include <cstdlib>namespace linkedlist{
class node {
typedef size_t value_type;
private:
value_type m_data;
node *m_link;
public:
//Constructor
node(const value_type& i_data = value_type(), node* i_link = NULL){
m_data = i_data;
m_link = i_link;
}
void list_copy (const node* source_ptr, node*& head_ptr, node*& tail_ptr);
Для файла реализации:
#include <iostream>
#include "Link.h"#include <cassert>
#include <cstdlib>
using namespace linkedlist;
void node::list_copy (const node* source_ptr, node*& head_ptr, node*& tail_ptr){
head_ptr = NULL;
tail_ptr = NULL;
// Handle the case of the empty list.
if (source_ptr == NULL) return;
// Make the head node for the newly created list, and put data in it.
list_head_insert(head_ptr, source_ptr->data( ));
tail_ptr = head_ptr;
// Copy the rest of the nodes one at a time, adding at the tail of new list.
source_ptr = source_ptr->link( );
while (source_ptr != NULL) {
list_insert(tail_ptr, source_ptr->data( ));
tail_ptr = tail_ptr->link( );
source_ptr = source_ptr->link( );
}
}
Ссылка перечисленная сумка
#ifndef ARLINK_H
#define ARLINK_H
#include <iostream>
#include <cstdlib>
#include "Link.h"
using namespace linkedlist;
class bag{
typedef size_t size_type;
typedef node::value_type value_type;
private:
node *head_ptr; //list head pointer
size_type m_nodes; //number of nodes in the list
public:
// CONSTRUCTORS and DESTRUCTOR
bag( );
bag(const bag& source){
node *tail_ptr; // Needed for argument to list_copy
list_copy(source.head_ptr, head_ptr, tail_ptr); //Giving Error Link List definition not resolved
m_nodes = source.m_nodes;
}
узел :: список_копий не распознан
Задача ещё не решена.
Других решений пока нет …