C ++:构造函数将此作为nullptr返回

时间:2016-04-17 17:41:47

标签: c++ pointers null this

我有一个应该将项目添加到链接列表的程序。我运行一个函数,用一个构造函数创建一个新的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

任何人都可以看到我的错误在哪里吗?

0 个答案:

没有答案