【发布时间】:2018-09-07 13:35:39
【问题描述】:
在这种情况下,我想删除这本书,但我尝试声明此代码,但它不起作用。
class Library {
private:
Book **books;
int counter;
public:
Library() {
books = NULL;
counter = 0;
}
void Add(INPUT &tmp) {
books = new Book*[counter];
++counter;
}
void Delete() {
--counter;
delete[] books[counter];
books[counter] = NULL;
}
int getCounter() {
return this->counter;
}
~Library() {
delete[] books;
}
};
【问题讨论】:
-
什么不起作用?如果您遇到编译器错误,请将它们包含在问题中。如果它在运行时崩溃,请告诉我们(请注意,您在此处显示的代码只是一个类定义,因此这里没有可运行的内容)。
-
1) 请准确解释什么对您不起作用。 2) 请提供minimal reproducible example。
-
@MustafayevTural 您是否尝试过使用调试器单步执行您的代码?
-
@MustafayevTural 这没有回答我的问题。在我最初的评论中,让我扩展一下“使用调试器单步执行代码”的含义:您是否尝试逐行逐行执行代码,同时调查局部变量的值,在每一步,同时将它们与您的期望进行比较,以了解您的程序的行为与您的期望不符的点?
-
@john 好吧,我们不知道 OP 代码中的
Book是什么,也不知道应该如何使用它。据我们所知,他们可能需要std::vector<std::unique_ptr<Book>>。
标签: c++ arrays class pointers heap-memory