我有一个应该将项目添加到链接列表的程序。我运行一个函数,用一个构造函数创建一个新的Item
对象。问题是构造函数(在用户输入不同的值之后)将this
- 指针返回为nullptr
,并且没有任何内容添加到列表中。
此功能启动添加项目功能:
void Items::addNewItem(){
itemList->add(new Item(categoryBase->lastItemInUse++));
}
itemList
是指向Items
类中构造函数中定义的List对象的指针:
Items::Items(char* fname){
itemList = new List(Sorted);
}
使用new
关键字时,将调用此构造函数:
Item::Item(int n) : NumElement(n) {
char tekst[STRLEN];
read("Salesman: ", tekst, STRLEN);
salesman = new char[strlen(tekst) + 1]; strcpy(salesman, tekst);
read("Title: ", tekst, STRLEN);
title = new char[strlen(tekst) + 1]; strcpy(title, tekst);
read("Description: ", tekst, STRLEN);
description = new char[strlen(tekst) + 1]; strcpy(description, tekst);
startTime = read("Start time for auction(ÅÅMMDDTTMM) ", 1, 23); //Use Frodes time.cpp and h.
endTime = read("End time for auction(ÅÅMMDDTTMM) ", startTime, 24); //Use Frodes time.cpp and h.
startPrice = read("Start price for auction ", MINPRICE, MAXPRICE);
shipping = read("Shipping ", 0, MAXSHIPPING);
increaseBid = read("Increase a Bid ", 1, MAXINCREASE);
lastBid = bidTime = 0; // Sets lastBid and bidTime to 0
buyer = NULL; // buyer points to NULL until bid
}
当我调试程序时,我可以看到this
- 指针"填充"使用数据,但是当所有内容都填满后,程序跳回addNewItem()
函数时,this
- 指针突然NULL
。
任何人都可以看到我的错误在哪里吗?