Форум программистов, компьютерный форум CyberForum.ru

Объекты и классы.Полиморфизм.Виртуальные функции - C++

Восстановить пароль Регистрация
 
sovershenstvo
0 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 125
18.04.2013, 17:07     Объекты и классы.Полиморфизм.Виртуальные функции #1
Создать класс Точка, которая имеет координаты. Класс Эллипсов, и класс Окружностей. Определить иерархию типов. Определить функции печати, конструкторы, деструкторы, вычисление площади. Программа должна содержать меню, позволяющее осуществить проверку всех методов классов.


изменить через виртуальную функцию

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream.h>
#include <conio.h>
 
class Tochka
{protected:
 int x,y;
 public: Tochka () {x=y=0;};
         void Vvod ()
         {cout<<"Vvedite x: "; cin>>x;
         cout<<"\nVvedite y: "; cin>>y;}
         
         void Vivod ()
         {cout<<"x= "<<x<<"; y= "<<y<<";";};
         };
 
class Circle :public Tochka
{int r;
 public: Circle () {r=0;};
         
         void Vvod ()
         {Tochka::Vvod();
         cout<<"Vvedite r1: "; cin>>r;};
        
        void  Vivod ()
         {Tochka::Vivod();
         cout<<" r= "<<r<<";";}
        
        void  Ploshad ()
         {cout<<"s= "<<3.14*r*r;} ;
         };
 
class Elips :public Tochka
{int r1,r2;
 public: Elips () {r1=r2=0;};
        void  Vvod ()
         {Tochka::Vvod();
         cout<<"Vvedite r1: "; cin>>r1;
         cout<<"Vvedite r2: "; cin>>r2;};
        
        void  Vivod ()
         {Tochka::Vivod();
         cout<<" r1= "<<r1<<"; r2= "<<r2<<";";}   
        
        void  Ploshad ()
         {cout<<"s= "<<3.14*r1*r2;}; 
         };
         
         
int main()
{Tochka A[10];
 Circle B[10];
 Elips C[10];
 int i=0,j=0,k=0,p=0,l;
 while (p<9)
 {cout<<"\n\n1. dobavit' tochku"<<endl;
  cout<<"2. dobavit' krug"<<endl;
  cout<<"3. dobavit' elips"<<endl;
  cout<<"4. vivesti vse tochki"<<endl;
  cout<<"5. vivesti vse krugi"<<endl;
  cout<<"6. vivesti vse elipsi"<<endl;
  cout<<"7. vivesti ploshad' kruga"<<endl;
  cout<<"8. vivesti ploshad' elipsa"<<endl;
  cout<<"9. vihod"<<endl;
    cin>>p;
    
    switch (p)
{    case 1: A[i].Vvod(); i++; break;
    case 2: B[j].Vvod(); j++; break;
    case 3: C[k].Vvod(); k++; break;
    case 4: for (int p=0; p<i; A[p].Vivod(), p++); break;
    case 5: for (int p=0; p<j; B[p].Vivod(), p++); break;
    case 6: for (int p=0; p<k; C[p].Vivod(), p++); break;
    case 7: cout<<"vvedite nomer: "; cin>>l; B[l-1].Ploshad(); break;
    case 8: cout<<"vvedite nomer: "; cin>>l; C[l-1].Ploshad(); break;
};
};
    
getch();}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.04.2013, 17:07     Объекты и классы.Полиморфизм.Виртуальные функции
Посмотрите здесь:

C++ Виртуальные функции. Абстрактные классы.
Наследование и полиморфизм.Виртуальные функции C++
C++ Абстрактные классы, виртуальные функции
C++ Виртуальные функции (создать массив указателей на объекты трех классов)
C++ Виртуальные функции и полиморфизм
полиморфизм,виртуальные функции, перезагрузка ф-ции C++
Виртуальные функции и классы C++
C++ Абстрактные классы. Виртуальные функции

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 17:29. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru