leox@mitoalfaromeo
24-01-2007, 12:32
eccomi qua con i miei problemi catastrofici... stavolta il tema è C++ e un maledetto costruttore di una classe un po' particolare...
Questa classe (PurchasingPlan) è un vettore di (puntatori ad) oggetti di un'altra classe da me definita e, oltre a ciò, si porta dietro alcuni attributi (2 interi e un vettore)...
per inizializzare i 2 interi e il vettore non ho avuto problemi, quello che non riesco a fare è assegnare un valore che deve essere fissato al primo e ultimo elemento del vettore.
per capire meglio riporto il codice
class MarketIdAndOrders : public Sortable {
public:
MarketId mID;
SetOfOrders setOfOrders;
MarketIdAndOrders(const MarketId & mID, double k=0) : Sortable(k), mID(mID) {}
};
typedef vector <MarketIdAndOrders> SetOfMarketAndOrder;
typedef MarketIdAndOrders PurchasingPlanByMarket;
class PurchasingPlan : public vector< MarketIdAndOrders* > {
public:
Price cost;
Time time;
vector <bool> inPlan;
PurchasingPlan(int mMarkets) {
for(int i=1; i<mMarkets;i++)
inPlan[i]=false;
//(this->_Myfirst)->mID=DEP_ID;
//this->_Myend.mID=DEP_ID;
}
~PurchasingPlan() {
for(int i=0; i<size();i++)
delete this->operator[](i);
clear();
}
};
quello che vorrei fare, come si vede nei disperati tentativi commentati all'interno del costruttore della classe PurchasingPlan, e ficcare nel campo mID del primo e ultimo elemento la costante DEP_ID...
Idee? non capisco come fare...
edit: se scrivo
this->operator [](0)->mID=DEP_ID;
il primo riesco ad assegnarlo, ma per l'ultimo come fare non sapendo quando sarà lungo il vettore?
Questa classe (PurchasingPlan) è un vettore di (puntatori ad) oggetti di un'altra classe da me definita e, oltre a ciò, si porta dietro alcuni attributi (2 interi e un vettore)...
per inizializzare i 2 interi e il vettore non ho avuto problemi, quello che non riesco a fare è assegnare un valore che deve essere fissato al primo e ultimo elemento del vettore.
per capire meglio riporto il codice
class MarketIdAndOrders : public Sortable {
public:
MarketId mID;
SetOfOrders setOfOrders;
MarketIdAndOrders(const MarketId & mID, double k=0) : Sortable(k), mID(mID) {}
};
typedef vector <MarketIdAndOrders> SetOfMarketAndOrder;
typedef MarketIdAndOrders PurchasingPlanByMarket;
class PurchasingPlan : public vector< MarketIdAndOrders* > {
public:
Price cost;
Time time;
vector <bool> inPlan;
PurchasingPlan(int mMarkets) {
for(int i=1; i<mMarkets;i++)
inPlan[i]=false;
//(this->_Myfirst)->mID=DEP_ID;
//this->_Myend.mID=DEP_ID;
}
~PurchasingPlan() {
for(int i=0; i<size();i++)
delete this->operator[](i);
clear();
}
};
quello che vorrei fare, come si vede nei disperati tentativi commentati all'interno del costruttore della classe PurchasingPlan, e ficcare nel campo mID del primo e ultimo elemento la costante DEP_ID...
Idee? non capisco come fare...
edit: se scrivo
this->operator [](0)->mID=DEP_ID;
il primo riesco ad assegnarlo, ma per l'ultimo come fare non sapendo quando sarà lungo il vettore?