动态创建对象C++

动态创建对象C++,c++,class,pointers,object,linked-list,C++,Class,Pointers,Object,Linked List,我读过很多关于这个话题的帖子,但是没有一篇能解决我的问题 如何动态创建对象并将其存储在链接列表中 我有一段代码,一个对象保存一个数字,然后它有一个指向下一个数字的指针,仅用于表示。 例如:17 一->下一个=七个。两者都是同一类的对象 class Class{ private: int value; Class *pNext; //Points to the next object in the linked list. public: Class(){value

我读过很多关于这个话题的帖子,但是没有一篇能解决我的问题

如何动态创建对象并将其存储在链接列表中

我有一段代码,一个对象保存一个数字,然后它有一个指向下一个数字的指针,仅用于表示。 例如:17

一->下一个=七个。两者都是同一类的对象

    class Class{
private:
    int value;
    Class *pNext; //Points to the next object in the linked list.
public:
    Class(){value = 0;  }
    ~Class(){;}

    void setV(int x){ value = x;}
    int getV(){return value;}

    //void setP(Class *p){ pNext = p;} ?? Is this right?
 };

int main(){
Class *pFirst; //pointer to first element
Class *pLast;  //pointer to last element
Class *pCurrent; //pointer to current element

for(int i = 0; i < 4;i++){
    pCurrent = new Class;
    pCurrent->setV(i);
    //pCurrent->setP(NULL);
}

for(int i = 0; i < 4;i++){
    cout << pCurrent->getV() << " ";
}

return 0;
}

感谢

要使列表永久化,首先必须声明头部节点,然后对于for循环中的每个迭代,将其添加到该列表中

int main() 
{

    Class *pFirst; //pointer to first element
    pFirst->setV(0);
    Class *pLast;  //pointer to last element
    Class *pCurrent; //pointer to current element
    pFirst->pNext = pCurrent; // To keep track of the list via head


    for(int i = 0; i < 4;i++) 
    {
        pCurrent = new Class;
        pCurrent->setV(i);
        pCurrent->pNext = NULL;
    }

    for(int i = 0; i < 4;i++)
    {
        cout << pCurrent->getV() << " ";
    }

    return 0;
}

销毁-不,存储在指针中的新对象不会自动销毁,这就是为什么这不是首选。就我所知,您的循环从未销毁它创建的对象。它也没有正确地链接它们,因此它们不会列出一个列表。此外,类构造函数无法初始化所有对象成员,特别是未初始化pNext指针,因此遍历“列表”几乎肯定会以崩溃告终。