fork download
  1. #include <iostream>
  2. #include <string>
  3. #include <memory>
  4.  
  5.  
  6. struct Data1
  7. {
  8. std::string str1;
  9. std::string str2;
  10. std::string str3;
  11. int a;
  12. int b;
  13. double c;
  14. };
  15.  
  16. struct Class1
  17. {
  18. Data1 data1;
  19. int num1;
  20. int num2;
  21. int num3;
  22. };
  23.  
  24. struct Class2
  25. {
  26. std::unique_ptr<Data1> pData1;
  27. int num1;
  28. int num2;
  29. int num3;
  30. };
  31.  
  32. struct Data2
  33. {
  34. int a;
  35. int b;
  36. int c;
  37. };
  38.  
  39. struct Class3
  40. {
  41. std::unique_ptr<Data2> pData2;
  42. };
  43.  
  44. int main(void)
  45. {
  46. Data1 a;
  47. Class1 b;
  48. Class2 c;
  49. std::unique_ptr<Class1> d;
  50. std::unique_ptr<Class2> e;
  51.  
  52. std::cout << "Data1 size: " << sizeof(a) << std::endl;
  53. std::cout << "Class1 size: " << sizeof(b) << std::endl;
  54. std::cout << "Class2 size: " << sizeof(c) << std::endl;
  55. std::cout << "pClass1 size: " << sizeof(d) << std::endl;
  56. std::cout << "pClass2 size: " << sizeof(e) << std::endl;
  57.  
  58. Data2 f;
  59. Class3 g;
  60. std::cout << "Data2 size: " << sizeof(f) << std::endl;
  61. std::cout << "Class3 size: " << sizeof(g) << std::endl;
  62.  
  63.  
  64. }
  65.  
  66.  
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Data1 size: 112
Class1 size: 128
Class2 size: 24
pClass1 size: 8
pClass2 size: 8
Data2 size: 12
Class3 size: 8