'operator=' 在 '((library*)this)->library::d atabase[bookcode] = -1'|
'operator=' in '((library*)this)->library::database[bookcode] = -1'|
我无法理解这个错误。为什么我不能使用操作员删除我的条目?帮我做这个。这是我的图书入门课,
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函数,
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();
}
这是我得到错误的行,
database[bookcode]=-1;
由于使用了固定大小的数组,因此无法删除条目。事实上,您总是有MAX
条目,即使它们还不包含任何有效数据。
要么你需要存储某种标志(要么在条目内,要么在另一个数组或另一个方法中)关于哪些位置是有效的,或者使用一个不固定大小的数据结构,比如std::vector
或std::list
。这样你就可以存储任意数量的书,而不受任意的最大存储量的限制。
我还建议您使用std::string
来存储书籍和作者姓名。你能找到多少本书的名字长度超过29个字符?您不想在您的系统中支持这些吗?
database[bookcode]
是bookEntry
。
不能将int
赋值给类实例。
你可以这样分配一个默认实例:
database[bookcode] = bookEntry();
如果您的bookEntry
构造函数构造了一个空条目(不管这意味着什么),
相关文章:
- Boost Graph Library,修复节点大小
- SFML library: http request
- 解决"ld: library not found for -ltensorflow_framework.2.3.0"
- Linking library C++
- 在VS2019项目中集成ImageMagick:x64-windows-static library
- OpenSSL fips in C++ wrapper Library 如何?错误:指纹不匹配
- C++ class vs a library
- C++ library with Tensorflow on Android
- CMake:尝试在 Jenkins 构建机器上运行时出现"Linked Library"错误 (0xc0000135)
- 将 c++ cmake-library 构建发布到本地存储库时出现 Gradle 错误
- 为什么'allocate in one library and free in the other'是错误的
- 链接 library.lib 使用 setup.py.
- 目标提升::<library>已经有导入的位置 + 链接错误
- Visual Studio 2017 C++,如何定义一个"环境变量"'Additional Library Directory'?
- C++ Boost SML Library
- Windows 套接字和身份验证构建在包含 Poco-Library 时失败
- Qt小部件应用程序"Library not registered"错误
- Xcode/IOS: linking a CMake library
- 如何修复'The procedure entry point SDL_RWclose could not be located in the dynamic link library'
- 'operator=' 在 '((library*)this)->library::d atabase[bookcode] = -1'|