C++ 'operator='in'((库*)this)->library::database[bookcode]=-1'|

C++ 'operator='in'((库*)this)->library::database[bookcode]=-1'|,c++,C++,我不能理解这个错误。为什么我不能使用运算符删除我的条目?帮我做这个。这是我的图书录入课 class bookEntry{ public: int code; int copies; char name[30]; char author[30]; }; 这是我的班级图书馆 class library{ public: int numBooks; bookEntry database[MAX], tempdatabase[MAX]; lib

我不能理解这个错误。为什么我不能使用运算符删除我的条目?帮我做这个。这是我的图书录入课

class bookEntry{
public:
    int code;
    int copies;
    char name[30];
    char author[30];
};
这是我的班级图书馆

class library{
public:
    int numBooks;
    bookEntry database[MAX], tempdatabase[MAX];

    library(){
        numBooks = 0;
    }
    void insertBook( int bookcode, char bookName[], char author[], int bookcopies );
    void deleteBook(int bookcode);
    void search( int bookcode);
    void displayBook( );
    void edit(int bookcode);
    void editname(int numBooks);
    void editauthor(int numBooks);
    void editcopies(int numBooks);

};
这是我删除条目的无效函数

void library::deleteBook(int bookcode)

  {
    system("cls");

   cout<<endl;

   cout<<"Enter A Code of a Book To Delete That Entry  ";

   cin>>bookcode;

   cout<<endl;
   int i;

   for(i=0;i<=numBooks-1;i++)

   {
    if (bookcode==database[i].code)
    {
            database[bookcode]=-1;
            cout<<"Book Successfully Deleted...!!"<<endl;
    }


    else

    {
     cout<<"Book not found...!!!"<<endl;
    }

     }
     getch();
  }
数据库[bookcode]是一个簿记条目

不能将int赋值给类实例

可以按如下方式分配默认实例:

database[bookcode] = bookEntry();

如果bookEntry构造函数构造了一个空条目,不管这意味着什么,这都是有效的。

您不能删除条目,因为您使用了固定大小的数组。事实上,您总是有MAX条目,即使它们还不包含任何有效数据

您需要将某种标志存储在条目内部、另一个数组或另一种方法中,以确定哪些位置是有效的,或者使用大小不固定的数据结构,例如std::vector或std::list。然后,您可以存储任意数量的书籍,而不受任意最大值的限制


我还建议您使用std::string来存储书籍和作者姓名。你能找到多少书名长度超过29个字符的书?您不想在您的系统中支持这些吗?

那么我应该怎么做才能删除所选的条目Nothing。不能删除数组元素。你必须更清楚你的目标。我是C++编程的NoOB,请帮助我。我不知道如何使用std::vector和std::list。请帮助我
database[bookcode] = bookEntry();