新来的C++及其给我一个hissy适合。传递指针向量的指针...不不?
实际的代码是在不同的计算机上,我不能复制它,所以我会尽我所能用伪代码。
我的结局是有一个[指针]向量,可以被几个不同的对象访问。我试图去了解这个问题的方法是有一个包含矢量有一种方法类似原始类:
std::vector<myObject*>& myClass::getVectorPointer(){
return &vectorPointer;
}
所以后来我的各种班结束有这样一行代码:
std::vector<myObject*>* myStuff = myClassObject.getVectorPointer();
然后我想开始向对象中投掷对象。所以,首先我实例化一个对象:
MyObject* tempObject = new MyObject("grrr");
然后,我希望把它的载体,所以我这样做:
myStuff->push_back(tempObject);
这编译就好了,但是当我运行它扼流圈。通过调试去我得到:在[some_]分配器
402错误的新的表达方式::构建
我不知道这意味着什么。我试着在提出的解决方案中将::放在我的新面前,但这并没有做到。
因此,审查,假装它是这样的,但正确的语法和逻辑:
Class A.h
#include <vector>
#include "myObject.h"
ClassA{
public:
classA();
inline std::vector<myObject*>* myClass::getVectorPointer(){ return &vectorPointer;}
private:
std::vector<MyObject*>* vectorPointer;
}
#include "A.h"
int main() {
ClassA myClassAObject;
std::vector<myObject*>* myStuff = myClassAObject.getVectorPointer();
MyObject* tempObject = new MyObject("grr");
myStuff->push_back(tempObject);
}
产量402
这只是一个简单的语法的事,还是我上了一条小溪,因为指向向量的指针只是一个不行?
我一直在试图看看你是如何传递一个向量,而我看到的大多数事件显示调用一个函数,该函数接收一个向量并在函数中向向量做东西,我看不到这跟调用一个返回引用的函数然后向那里的向量做东西的方式有很大不同。这只是我的一个巨大的逻辑缺陷?
任何线索我怎么才能修复我的程序到什么是适当的,很快?
我会尝试建议的事情。你们都非常有帮助。非常感谢!
指向向量指针的指针是合法的C++ - 不一定是最好的设计。你的ClassA构造函数大写正确吗? – sje397 2010-10-04 03:13:30
你可以添加'class MyObject'的声明吗? – 2010-10-04 03:18:52