c++ - 如何在同一个函数中创建多个对象而不互相覆盖?

标签 c++ pointers variables object

我试图在函数中创建一个对象,但我遇到了必须在运行时定义变量名的问题。有什么我可以对数组做的事情,它允许 ne 在函数中动态创建一个变量,并且最好给它一个与上次调用该函数时创建的名称不同的名称?

***我在用 C++ 工作

编辑: 我不能提供任何代码,因为我现在没有。我现在只有伪代码。

基本上,我正在尝试创建一个链表,但我想使用的 addNewItem() 方法需要使用相同的方法来创建不同的对象。

编辑: 从技术上讲,我们并不是在制作链接列表,只是为了了解它们的工作原理而提供的更多概念证明。

编辑:这是代码:

#include "linklist.h"
#include <iostream>
using namespace std;

struct linklist
{
    Student * obj;
    linklist * next;
};

linklist * head;

int main()
{

}
void addStudent(char * newsdnt)
{
    if(!head){
            linklist * a = new linklist;
            a->obj = new Student(newsdnt);
            a->next = 0;
            head = a;
            return;
    }else{
            linklist * a = new linklist;
            a->obj = new Student(newsdnt);
            a->next = 0;
            if(!head->next){
                    head->next = a;  // Can only have one or two items in list
            }
    }

最佳答案

如果您想要一个链表 - 调用 new 来创建每个新节点,然后将其添加到列表中。

像这样:

void addStudent(char * newsdnt)
{
    linklist* a = new linklist;
    a.obj = new Student(newsdnt);
    a.next = 0;

    if( head == 0 ) {
        head = a;
    } else {
        linklist* whereToAdd = head;
        while( whereToAdd.next != 0 ) {
            whereToAdd = whereToAdd.next;
        }
        whereToAdd.next = a;
    }
}

关于c++ - 如何在同一个函数中创建多个对象而不互相覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/609411/

相关文章:

c++ - 可以将一个指针设置为另一个值为 NULL 的指针吗

java - 为什么我得到空数组?

BASH find -name(读取变量)

C++ 和 Qt : Paint Program - Rendering Transparent Lines Without Alpha Joint Overlap

c++ - 在其他类中使用标题中的枚举

c++ - 如何知道指定的文件是否被正确读取?

更改 C 中结构的变量

c++ - 字符串比较 - 替换字符数组中的单词

C静态变量

java - Java中类之间传递变量