fork download
  1. #include <iostream>
  2. #include <cstdint>
  3. using namespace std;
  4.  
  5. class Parent{
  6. private:
  7. uint8_t age;
  8.  
  9. struct HealthInfo {
  10. uint16_t stepsADay;
  11. uint8_t levelsADay;
  12. };
  13. HealthInfo healthInfo;
  14.  
  15. public:
  16. int setAge(uint8_t a_age);
  17. uint8_t getAge();
  18.  
  19. int setHealthInfo(uint16_t a_stepsADay,uint8_t a_levelsADay);
  20. HealthInfo getHealthInfo();
  21. };
  22.  
  23. // omitting (de-)/constructor for readability
  24. int Parent::setAge(uint8_t a_age){
  25. this->age = a_age;
  26. return 0;
  27. }
  28. uint8_t Parent::getAge(){
  29. return this->age;
  30. }
  31.  
  32. int Parent::setHealthInfo(uint16_t a_stepsADay,uint8_t a_levelsADay){
  33. this->healthInfo.stepsADay = a_stepsADay;
  34. this->healthInfo.levelsADay= a_levelsADay;
  35. return 0;
  36. }
  37. Parent::HealthInfo Parent::getHealthInfo(){
  38. return this->healthInfo;
  39. }
  40.  
  41. uint32_t createMessage(Parent *thatParent){
  42. auto tmpHealthData=thatParent->getHealthInfo();
  43.  
  44. // create message to give to doctor
  45. uint32_t messageToDoctor = (thatParent->getAge() <<24)
  46. + (tmpHealthData.stepsADay<<8)
  47. + (tmpHealthData.levelsADay);
  48. return messageToDoctor;
  49. }
  50.  
  51. int main() {
  52. Parent papa; // c++ is not java no Parent x = new Parent() unless you use pointers
  53.  
  54. papa.setAge(54);
  55. papa.setHealthInfo(1000,6);
  56. auto x = papa.getHealthInfo();
  57. cout << x.stepsADay;
  58.  
  59. // do other stuff ...
  60.  
  61. uint32_t message= createMessage(&papa);
  62. // send message ...
  63.  
  64. return 0;
  65. }
Success #stdin #stdout 0.01s 5360KB
stdin
Standard input is empty
stdout
1000