我试图创建一个双向链接列表,其中每个列表都有第一个节点,最后一个节点和num_elements。但是,出于某种原因,当我尝试在UseList.cpp文件中测试代码时,我无法将num_elements设置为默认值为零。不能让构造函数运行
让我告诉你我是什么意思:
在List.h:
template <class L>
class List
{
private:
Node<L> *first;
Node<L> *last;
int num_elements;
public:
// constructors and destructors
List();
[...]
}
[...]
template <class L>
List<L>::List() {
first = NULL;
last = NULL;
num_elements = 0;
}
[...]
这是低下来list.h显示方法:
template <class L>
// Print out the data in each node separated by a space.
void List<L>::show() {
cout << num_elements << endl;
Node<L> *current_node = first;
while (current_node != NULL) {
cout << current_node->data << " ";
current_node = current_node->next;
}
cout << endl;
}
注意,有是一个cout语句来打印num_elements。
这是UseList.cpp的相关部分:
int main (int argc, char *argv[]) {
cout << "-----------------------------------------" << endl;
cout << "----------------LIST ONE-----------------" << endl;
cout << "-----------------------------------------" << endl;
List<int> *list1;
srand(time(NULL));
list1->show();
[...]
当节目叫,它打印出“1”,并给了我一个分段错误。为什么num_elements默认为“1”而不是“0”?
当我在List<L>::List() {
做了清点,没有打印...(这意味着构造从来没有运行?)
感谢您的帮助!
实例这是完美的。谢谢!一旦StackOverflow说10分钟结束,我会接受答案。 –