fork download
  1. #include <iostream>
  2. #include <map> // or <unordered_map>
  3. #include <string>
  4.  
  5. class C{
  6. public:
  7. C* linked1;
  8. C* linked2;
  9.  
  10. std::map<std::string, double> values; // or std::unordered_map
  11.  
  12. C(double d1, double d2) {
  13. values["d1"] = d1;
  14. values["d2"] = d2;
  15. }
  16.  
  17. double add(const std::string& name) const {
  18. return linked1->values.at(name) + linked2->values.at(name) + values.at(name);
  19. }
  20. };
  21.  
  22.  
  23. int main() {
  24. C c1{1., 2.};
  25. C c2{3., 4.};
  26. C c3{5., 6.};
  27.  
  28. c1.linked1 = &c2;
  29. c1.linked2 = &c3;
  30.  
  31. double a1 = c1.add("d1");
  32. double a2 = c1.add("d2");
  33.  
  34. std::cout << a1 << std::endl;
  35. std::cout << a2 << std::endl;
  36.  
  37. return 0;
  38. }
Success #stdin #stdout 0.01s 5436KB
stdin
Standard input is empty
stdout
9
12