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();