#pragma once #ifndef __Reader_H #define __Reader_H class Book; class Reader { private: int m_id; char m_name[10]; int m_borrbooknum; Book* m_booklist[10]; public: Reader(int id, char name[]); ~Reader(); void print_readers(); char* get_name(); bool borrow_book(Book* book); bool return_book(Book* book); void show_borbooks(); int get_id(); bool hasbrrbooks(); }; #endif // !__Reader_H如何析构该函数
时间: 2024-03-26 17:35:48 浏览: 61
#pragma_命令集合
你可以在类的实现文件中实现析构函数。例如,你可以在名为“Reader.cpp”的文件中添加以下代码:
```c++
#include "Reader.h"
#include "Book.h"
Reader::~Reader()
{
// 释放每本借阅的书籍
for (int i = 0; i < m_borrbooknum; i++)
{
if (m_booklist[i])
{
delete m_booklist[i];
m_booklist[i] = nullptr;
}
}
}
```
在析构函数中,我们遍历读者借阅的书籍列表,并释放每本书的内存。最后,我们将指向该书的指针设置为“nullptr”。
请注意,这里使用了“delete”关键字来释放内存。这是因为我们在读者类中保存了指向书籍对象的指针。当读者对象被销毁时,我们需要释放这些指针所指向的内存,否则会发生内存泄漏。
同时,你还需要在类的头文件中声明析构函数:
```c++
class Reader {
// ...
public:
Reader(int id, char name[]);
~Reader(); // 声明析构函数
// ...
};
```
这样,当你销毁Reader对象时,就会自动调用析构函数来释放内存了。
阅读全文