Я должен признать, что мой C ++ немного ржавый. В проекте я пытаюсь создать вектор классов и использовать их. Существует проблема, потому что я хочу идентифицировать каждую запись вектора с уникальным указателем на него для быстрого доступа, но он не работает. Вот минимальный пример моей проблемы:
#include <iostream>
#include <vector>
class Foo{
public:
Foo() { ptr = this; }
~Foo() {}
Foo * ptr;
};
int main()
{
std::vector<Foo> vec;
for(unsigned int i = 0; i < 2; ++i)
vec.push_back(Foo());
for(unsigned int i = 0; i < vec.size(); ++i)
std::cout << "Object Self-Pointer: " << std::hex << reinterpret_cast<unsigned int>(vec[i].ptr) << std::endl;
}
Фактический объем производства:
Object Self-Pointer: bfbebc18
Object Self-Pointer: bfbebc18
Предполагаемая мощность:
Object Self-Pointer: bfbebc18
Object Self-Pointer: bfbebc1c
(некоторые указатели на реальные объекты).
Надеюсь, вы поможете мне с этим вопросом, заранее спасибо.