fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <iterator>
  4. #include <string>
  5. #include <stdlib.h>
  6. using namespace std;
  7.  
  8. class A
  9. {
  10. public:
  11. A()
  12. {
  13. }
  14. A(int i)
  15. {
  16. size = i;
  17. data = new int[i * sizeof(int)];
  18. }
  19. ~A()
  20. {
  21. delete[] data;
  22. }
  23. int* data;
  24. int size;
  25. };
  26.  
  27. class B
  28. {
  29. public:
  30. B(int i, int j)
  31. {
  32. size = i;
  33. size_A = j;
  34. A example(j);
  35. data = new A[i * sizeof(example)];
  36. for (int i2 = 0; i2 < i; ++i2)
  37. data[i2] = A(example);
  38. }
  39. ~B()
  40. {
  41. delete[] data;
  42. }
  43. A* bah(int b)
  44. {
  45. A* result = new A(b);
  46. return result;
  47. }
  48. A* data;
  49. int size;
  50. int size_A;
  51. };
  52.  
  53. class C
  54. {
  55. public:
  56. C()
  57. {
  58. data = vector<B*>();
  59. }
  60. ~C()
  61. {
  62. }
  63. void foo()
  64. {
  65. for (vector<B*>::iterator it = data.begin(); it + 1 != data.end(); ++it)
  66. {
  67. //do something to it's data
  68. A* new_data = (*it)->bah((*(it + 1))->size);
  69. (*(it + 1))->data = new_data;
  70. }
  71. }
  72. vector<B*> data;
  73. };
  74.  
  75. int main() {
  76. C c;
  77. c.data.push_back(new B(1, 2));
  78. c.data.push_back(new B(2, 4));
  79. c.data.push_back(new B(4, 10));
  80. c.foo();
  81. return 0;
  82. }
Success #stdin #stdout 0s 3424KB
stdin
Standard input is empty
stdout
Standard output is empty