我在为循环 link 列表编写代码时遇到代码错误

Im having a code error, while doing a code for a circular link list

我在找到我的代码的解决方案时遇到了问题,运行 没问题,但是当我将主要代码编辑为 运行 代码时,某些事情可能发生了变化。所以现在我的代码中出现了这个错误:成员函数 'isEmpty' 的这个参数具有类型 'const CircularLinkedList',但函数未标记为 const

这是代码中出现错误的部分。

//Copy Constructor
 template <typename T>
 CircularLinkedList<T>::CircularLinkedList(const CircularLinkedList& c1)
{
    if (!c1.isEmpty())
{
    Node<T>* curr = c1.frst;

    //Iterating through elements until we encounter home node again
    while (curr->next != first)
    {
        insert(curr->data);
        curr = curr->next;
    }
  }
 }

下面的代码我最初没有在我的主菜单上 运行 代码,但是一旦我把它放在上面,错误就会弹出。我不确定这是否与它有关。但作为参考,这里是我添加的代码。我在这段代码之前没有任何错误。

int printMenu();

 // InsertList inserts an item into the list parameter
 void insertListItem ( CircularLinkedList<int> & );

 // deletes the first occurrence from the list parameter
void deleteOne ( CircularLinkedList<int> & );

// deletes all the occurrence from  list parameter
void deleteAll ( CircularLinkedList<int> & );

 //return the length of the list
 int totalCount( CircularLinkedList<int> & );

// searchItem searches for an item in the list parameter
void searchItem ( CircularLinkedList<int>  );

 // return the number of occurrences of a given item
 int totalOccurence (CircularLinkedList<int> & );

错误是self-explanatory:在你的CircularLinkedList<T>::CircularLinkedList复制构造函数中,参数被标记为const

您只能使用其定义为const的方法。因此,将您的 isEmpty 定义更改为

bool isEmpty() const {...}

毕竟,检查列表是否为空不应修改该列表。