我很久没有使用 C++ 了,现在我需要做一些小“项目”。
我回顾了几个主题,试图为我的问题找到解决方案,但没有结果......
这是“伪代码”(Pair
是我的课):
Pair** pairs;
我从输入中获取表的大小并创建指针表:
pairs = new Pair*[size];
我有一个循环,它创建一些对象并将其引用放入指针表中。或多或少:
while (...)
{
Pair pair(...); // calling constructor, creating object type of Pair.
pairs[i] = &pair;
i++;
}
问题是每次都是相同的&pair
数字(循环的每一步)。假设第一个创建的对象的地址是 1234。因此,循环中的每一步都会在 1234 处覆盖该对象。因此每个指针指向pairs
相同的地址-> 相同的对象。我想强制在内存中的新位置创建这个对象。
我一直在尝试将这些对象放入其他表中,然后将它们的引用传递给指针表:
Pair* clearPairs = new Pair[size];
while (...)
{
clearPairs[i] = Pair(...);
pairs[i] = &clearPairs[i];
i++;
}
但问题仍然存在。
任何提示?,我的代码(或思考)中的错误/错误?我应该实现一些“复制构造函数”吗?