Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. class shape //просто класс форм
  2. {
  3. public:
  4. shape() {
  5. }
  6. virtual void show_parametri() {
  7. cout << " Абстрактная фигура " << endl;
  8. }
  9. ~shape() {
  10. cout << "Фигура удалилась" << endl;
  11. }
  12. };
  13. class point :public shape { //просто класс точек, наследуемый от форм
  14. private:
  15. int x, y;
  16. public:
  17. point() {
  18. x = 0;
  19. y = 0;
  20. }
  21. virtual void show_parametri() {
  22. cout << " Это точка" << endl;
  23. cout << " Координаты = " << x << " , " << y << endl;
  24. }
  25. ~point() {
  26. cout << "Точка удалилась" << endl;
  27. }
  28. };
  29. class MyStorage {
  30. private:
  31. shape **objects; //массив указателей
  32. int size;
  33. public:
  34. MyStorage(int size)
  35. {
  36. this->size = size;
  37. objects = new shape*[size];
  38. }
  39. void SetObject(int index, shape *object) { //помещение адреса объекта в массив
  40. objects[index] = object;
  41. }
  42. shape GetObject(int index) { //берем объект из массива
  43. return *objects[index];
  44. }
  45. int main()
  46. {
  47. setlocale(LC_ALL, "Rus");
  48. MyStorage storage(10);
  49. for (int i = 0; i < storage.getCount(); i++) { //здесь заполняю массив точками
  50. storage.SetObject(i, new point());
  51. }
  52. for (int i = 0; i < storage.getCount(); i++) { //здесь хочу вызвать метод show_parametri() у точек, но вызывается у форм
  53. storage.GetObject(i).show_parametri();
  54. }
  55. system("pause");
  56. return 0;
  57.  
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement