我有一個程序可以在整個程序中散佈點隨機數量的點。當它運行時,我還想爲每個點創建一個對象並將其存儲在向量中。我創建了一個具有各種屬性的Point類,但我不知道如何實現上述內容。在研究處理類似但不相同的問題的其他問題時,會使用指針,但同樣,我不知道如何實現它們。在沒有用戶輸入的情況下創建動態對象
0
A
回答
1
我不太清楚你真的想達到什麼,但我希望這會幫助你。
使用new
運算符創建對象。如果您指定一個構造函數的調用非常相似,正常施工堆棧
Point* pointObj = new Point();
:該new
操作總是返回一個指針
Point* pointObj = new Point(x,y);
一個std::vector存儲在堆在運行時的對象(動態),但不是由它創建他們自己簡單地把它們拷貝:
std::vector<Point> vec; //if this object is destructed it contents are destructed aswell
Point pointObj(x,y); //point on stack; will get destructed if it gets out of scope
vec.push_back(pointObj) //copy pointObj to a dynamic location on the heap
0
好了,我不知道什麼參數的點構造需要,但你的描述聽起來好像你想要做這樣的事情:
std::vector<Point> MyGlobalPointList;
和你的程序中,你有其中的幾個:
MyGlobalPointList.push_back(Point(x,y,color));
0
您是否在尋找自動對象管理與objec綁在這裏創造?如果是這樣,AbstractFactory可以幫助你。除了工廠正在構建對象(點)的機制而不是到處都是這樣,它還可以執行對象管理,例如,在矢量中管理它們。
class Point {
friend class PointFactory;
Point(int _x, int _y) : x(_x), y(_y) { }
private:
~Point(); //destructor is private
int x, y;
}
class PointFactory {
public:
Point* createPoint() { //Creates random point
return createPoint(rand(), rand());
}
Point* createPoint(int x, int y) { //Creates specified point
Point* p = new Point(x, y);
points.push_back(p);
return p;
}
void deletePoint(Point *p) { //p not in use anymore
std::vector<Point*>::iterator it = std::find(objects.begin(), objects.end(), p);
if (it != objects.end()) {
objects.erase(it);
}
delete p;
}
private:
std::vector<Point*> objects;
}
int main(...) {
Point *p = pointFactory.createPoint(); //instead of new Point()
//use p
pointFactory.deletePoint(p); //p not in use anymore
return 0;
}
希望這是你在找什麼。
- ANKUR Satle
+0
這不是非常有用的國際海事組織。一個'std :: vector
相關問題
- 1. 有沒有辦法在不使用(MFC)動態對象創建的情況下在CSplitterWnd中創建視圖?
- 2. Ruby - 如何在沒有.new的情況下創建MatchData對象?
- 3. 如何在沒有IIS的情況下創建動態網站
- 4. 在沒有用戶輸入的情況下安裝apk
- 5. VBscript在沒有用戶輸入的情況下結束
- 6. 如何在沒有用戶輸入的情況下添加Crontab?
- 7. 參考父表在沒有用戶輸入的情況下
- 8. 在沒有用戶的情況下創建聯繫人
- 9. 如何在沒有用戶交互的情況下創建AVD?
- 10. Rails如何在沒有表單的情況下手動創建子對象
- 11. 在沒有按下輸入Java的情況下輸入
- 12. 在沒有自動登錄的情況下在ios上創建Firebase用戶
- 13. 如何在沒有WSDL的情況下創建soap客戶端
- 14. 如何在不創建對象的情況下收聽活動
- 15. 如何在沒有WTForms的情況下使用燒瓶創建動態表單
- 16. 用戶輸入如何動態創建對象?
- 17. 如何在沒有localStream的情況下創建對等連接?
- 18. 如何在沒有NSObject的情況下在Objective-C中創建根對象?
- 19. 在沒有設置對象數的情況下在Java中創建數組?
- 20. 在沒有xts對象的情況下在PortfolioAnalytics中創建高效前沿
- 21. 如何在沒有活動的情況下創建BroadcastReceiver
- 22. 如何在沒有活動/服務的情況下創建BroadcastReceiver?
- 23. 在沒有Dart類的情況下從String/Symbol創建對象的實例?
- 24. 在沒有創建緩衝區的情況下寫入標準輸出
- 25. 在不創建對象的情況下調用類的方法
- 26. 在沒有NFC手機的情況下創建NFC「標籤」對象?
- 27. 如何在沒有解析器的情況下創建並填充`SparqlQuery`對象?
- 28. 如何在沒有驗證的情況下創建s3 Key對象?
- 29. 在沒有創建實現的情況下實現接口(動態代理?)
- 30. 如何在沒有COALESCE的情況下創建動態WHERE選擇
什麼是你運行的第一個問題爲,當您試圖實現它? – 2012-07-08 18:55:03