新來的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