Ho una classe Item
che ha un costruttore non predefinito e non ha un costruttore predefinito. Non esiste un costruttore predefinito perché non voglio avere oggetti Item
con alcuni valori predefiniti strani intorno.
class Item {
int a;
public:
Item(int a) : a(a) {}
}
Un'altra classe User
utilizza la classe Item
e ha un metodo GetItem(Item * item)
che restituisce un oggetto Item
per puntatore.
class User {
Item item;
public:
bool SetItem(Item item) {
this->item = item;
return true;
}
bool GetItem(Item * item) { // Can't do "Item * GetItem()"
*item = this->item;
return true;
}
}
Il problema è quando provo a GetItem()
da qualche parte nel mio programma, ho ancora bisogno di allocare memoria per un oggetto Item
usando alcuni valori casuali, ad esempio Item anotherItem(999);
User user;
Item item(5);
user.SetItem(item);
// Here is the problem
Item anotherItem(999); // any random value
user.GetItem(&anotherItem);
Qual è la migliore pratica per gestire tali situazioni? È meglio avere un costruttore predefinito?
Grazie per il tuo aiuto in anticipo.