循环中的 C++ 对象引用

标签 c++ loops object memory pointer-address

<分区>

Possible Duplicate:
C++ Object references in loop cycle

我正在尝试使用循环创建相同类型的不同对象,然后将指向每个特定对象的指针存储在链表中。 问题是,每次实例化一个对象时,它的指针都会返回相同的内存地址,这不允许我区分该列表中的每个单独的对象。

我正在尝试使用循环创建相同类型的不同对象,然后将指向每个特定对象的指针存储在链表中。问题是,每次实例化一个对象时,它的指针都会返回相同的内存地址,这不允许我区分该列表中的每个单独的对象。

有什么解决办法吗?谢谢

我有一个具有以下功能的函数:

    Data dt(10,10,2010);
int p=0;
ifstream fx;
fx.open("utilizadores.txt",ifstream::in);
if(!fx)
{cout << "FX. nao existe!" <<endl;}
string linha;
string nLugar;
int iD=1;

while(!fx.eof())
{
    getline(fx,linha,'\n');
    Utilizador* user;
    if(linha.find(',')==-1 && linha.size()>1)
    {
        cout<<"Entrou no vector"<<endl;
        string nlugar(linha.substr(0, linha.size()));
        nLugar=nlugar;

    }

      else
    {
        int inic=0;
        int pos=linha.find(',',inic);
        string nick(linha.substr(inic,pos-inic));
        pos++;
        inic=pos;
        pos=linha.find(',',inic);
        string email(linha.substr(inic,pos-inic));
        user=new Utilizador(dt,iD,nick,email);
        cout<<&user<<endl;
        cout<<user->clone()<<endl;
        }
    fx.close();
    }

链表在类语句中声明

有什么解决办法吗? 谢谢

最佳答案

    cout<<&user<<endl;

不是打印对象的地址,而是打印指向对象的指针的地址。对于程序的任何给定运行,此指针将始终位于堆栈上的相同位置,因此将产生相同的地址。

关于循环中的 C++ 对象引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7939732/

相关文章:

c++ - Qt 执行外部程序

c++ - 为什么旧的小部件没有被删除?

algorithm - 以预定义比率循环遍历服务器的 Go 算法

c - 仅当第一个函数在 C 中执行时如何取消第二个函数?

java - 有没有办法使用循环来改进这段代码?

java - 如何使用 Opencv 将 PNG 从 Java 类传递到 Android 中的 Native 类

php - 循环中的语法 '${$key} = $val' 在 PHP 中是什么意思?

json - 如何在 Angular 8 中将 json 字符串转换回对象

python - 在排序列表中插入自定义对象

c++ - 两行 Xerces 程序中的异常