由gSOAP的生成代理對象的矢量使用指示該使用指針的向量:矢量具有指針
class SOAP_CMAC ota__RoomStayTypeRoomRates
{
public:
std::vector<class ota__RoomRateType * >RoomRate;
//....
};
而不是使用:
vector.push_back(new Object());
然後將具有刪除對象時,我想我可能會創建一個對象向量,然後使用這些對象的地址,因爲當向量超出範圍時它們將被銷燬,從而避免內存泄漏:
OTARoomRates roomRates;
std::vector<ota__RoomRateType> rateObjectList;
rateObjectList.reserve(7);
for (int i = 0; i < 7; i++)
{
rateObjectList[i].RoomTypeCode = &roomTypeCode;
rateObjectList[i].RatePlanID = &ratePlanID;
//...
roomRates.RoomRate.push_back(&rateObjectList[i]);
}
我收到段錯誤。我想這是一個壞主意。你能解釋爲什麼嗎?
謝謝!這就是問題......(等待3分鐘來接受答案) – 2012-02-08 09:51:22