fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <list>
  4. #include <string>
  5. #include <utility>
  6. #include <memory>
  7.  
  8. struct Person
  9. {
  10. std::string name;
  11. std::vector<Person*> freunde;
  12. };
  13.  
  14. struct Welt
  15. {
  16. std::vector<std::unique_ptr<Person>> bewohner;
  17.  
  18. Person* neuer_bewohner(std::string name);
  19. };
  20.  
  21. Person* Welt::neuer_bewohner(std::string name)
  22. {
  23. std::unique_ptr<Person> p (new Person);
  24. p->name = move(name);
  25. bewohner.push_back(move(p));
  26. return bewohner.back().get();
  27. }
  28.  
  29. void befreunde(Person* wen, Person* mit)
  30. {
  31. // TODO: ueberlegen, ob und wie man abfangen soll,
  32. // falls die zwei personen schon befreundet sind
  33. // oder ob wen==mit gilt.
  34. wen->freunde.push_back(mit);
  35. mit->freunde.push_back(wen);
  36. }
  37.  
  38. int main()
  39. {
  40. Welt w;
  41. Person* hans = w.neuer_bewohner("Hans Wurst");
  42. Person* daniel = w.neuer_bewohner("Daniel Kaese");
  43. befreunde(hans,daniel);
  44. }
  45.  
Success #stdin #stdout 0s 2960KB
stdin
Standard input is empty
stdout
Standard output is empty