Håller på med en skoluppgift. Nej, vill inte ha allt löst. ;)
Ska göra ett konsoll-program som man ska kunna skapa en pizza-meny samt alla olika ingredienser.
Man skapar en ny pizza genom att ange vilka ingredienser som ingår.
Jag tänkte att jag skulle skapa en lista med alla ingredienser.
Jag har klasserna: pizza, ingrediens
Låt oss säga att jag har följande pizzor:
a) skinka, paprika
b) lök, räka, ananas
c) paprika, lök
När man skapar pizzorna a, b och c så skapar man inte en ny inbrediens-objekt, utan man använder ett ur listan.
Jag vill alltså få den funktionaliteten att ifall jag ändrar paprika till röd paprika så syns förändringen i alla pizzor.
Jag behöver inte ha en komplett lösning utan jag vill bara veta hur jag skall lagra alla ingredienser, så att förändringarna kan uppdateras.
Håller på med en skoluppgift. Nej, vill inte ha allt löst. ;)
Ska göra ett konsoll-program som man ska kunna skapa en pizza-meny samt alla olika ingredienser.
Man skapar en ny pizza genom att ange vilka ingredienser som ingår.
Jag tänkte att jag skulle skapa en lista med alla ingredienser.
Jag har klasserna: pizza, ingrediens
Låt oss säga att jag har följande pizzor:
a) skinka, paprika
b) lök, räka, ananas
c) paprika, lök
När man skapar pizzorna a, b och c så skapar man inte en ny inbrediens-objekt, utan man använder ett ur listan.
Jag vill alltså få den funktionaliteten att ifall jag ändrar paprika till röd paprika så syns förändringen i alla pizzor.
Jag behöver inte ha en komplett lösning utan jag vill bara veta hur jag skall lagra alla ingredienser, så att förändringarna kan uppdateras.
Lagra en pizzas ingredienser som referenser till listan med ingrediensobjekt.
[Ingredienser] {Ost, Tomat, Svamp, Skinka}
[Vesuvio] {lista med referenser till Ost, Tomat och Skinka i Ingredienslistan}
Jag testar dessa referense just nu med string-objekt, utan resultat.
Grejen med referenser är väl den att om man skapar en referense till ett objekt så kan man uppdatera objektet genom referensen och tvärtom? Dvs om man uppdaterar objektet direkt så syns förändringen även om man använder referensen?
Iofs så kör jag just nu med maps...
Jag har följande kod:
map <string, string> names;
string key = "name";
string value = string("jme");
string &ref = value;
names.insert(make_pair(key, value) );
map<string, string>::iterator it = names.find(key);
ref = "ukko";
if(it != names.end() )
{
cout << "Found it!" << endl;
cout << it->first << endl;
cout << it->second << endl;
it->second = "pakko";
}
else
{
cout << "Could not find it!" << endl;
}
cout << value << endl; // jag vill at det ska vara "pakko" !
Jag testar dessa referense just nu med string-objekt, utan resultat.
Grejen med referenser är väl den att om man skapar en referense till ett objekt så kan man uppdatera objektet genom referensen och tvärtom? Dvs om man uppdaterar objektet direkt så syns förändringen även om man använder referensen?
Iofs så kör jag just nu med maps...
Jag har följande kod:
map <string, string> names;
string key = "name";
string value = string("jme");
string &ref = value;
names.insert(make_pair(key, value) );
map<string, string>::iterator it = names.find(key);
ref = "ukko";
if(it != names.end() )
{
cout << "Found it!" << endl;
cout << it->first << endl;
cout << it->second << endl;
it->second = "pakko";
}
else
{
cout << "Could not find it!" << endl;
}
cout << value << endl; // jag vill at det ska vara "pakko" !
Ett pair som du skapar med make_pair kommer att köra copy-constructors på strängarna för att forma en pair-struct. Därmed kommer alltså inte värdet i din map att förändras bara för att du har en referens till value. :)
hmm, gjord nu en helt ny projekt och nu fick jag en statisk variabel och metod att fungera. Får väl jämföra dessa två projekt och se vart det gick åt skogen... :)