我有一个vector<MyType*>*
,但我不完全确定它是如何被访问的。我正在声明MyType* var = new MyType(params)
,它可以在创建它的类中正常访问。数字吐出来就好了。当我返回这些向量并尝试从另一个类(int main()
方法)访问它时,我得到的数字完全不同。
我访问它的方式int main()
是
MyType* Temp = reinterpret_cast<MyType*>(&ReturnedVector[i]);
这里有什么遗漏吗?我是 C++ 新手。
编辑:添加代码以进行澄清。这是我的主要方法:
int main(array<System::String ^> ^args)
{
MyAPI API;
std::vector<MyClass*>* RetVector = API.GetVector();
for (unsigned int i = 0; i < RetVector->size(); i++)
{
MyClass* Temp = reinterpret_cast< MyClass* >(&RetVector[i]);
cout << Temp->value << endl;
}
return 0;
}
这是另一个类中的向量返回方法:
vector<MyClass*>* MyAPI::GetVector()
{
vector<MyClass*>* Ret = new vector<MyClass*>();
for (int i = 0; i < 100; i++)
{
MyClass* Tmp = new MyClass(params);
Ret->push_back(Tmp);
}
return Ret;
}