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

наследование классов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Дорогие, помогите с линковкой libeay32.lib http://www.cyberforum.ru/cpp-beginners/thread335326.html
Здравствуйте, Уважаемые гуру! Собираю ntp-сервер, написанный на "с". Называется ntp 4.2.6p3 http://support.ntp.org/bin/view/Main/SoftwareDownloads Собираю его в Visual Studio 2003, в последствии буду интегрировать в свой проект. Проблема в следующем. В ntp используется openSSL и соответственно требуются либы. При линковке кричал, что не может найти libeay32.lib. Скачал openSSL, собрал его так:...
C++ Нужен алгоритм Как на с++ сделать так что б в игре противники двигались паралельно главному персонажу (которым непосредственно мы и управляем)... Заранее спасибо за идеи... PS Пробовал все реализовать так while(кол-во звезд на карте не ноль) { getch() while (!kbhit()) http://www.cyberforum.ru/cpp-beginners/thread335304.html
C# RSA шифравание и дешифравание надо перевести C++ C++
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Analitik_usul { class Program { static void Main(string args)
C++ Как изменить размерность матрицы
Помогите плз. Мне нужно просграммно поменять размерность матрицы. Например была матрица mat а должна получиться после определенных вычислений mat. Буду очень благадарен.
C++ Очередное WTF ))) http://www.cyberforum.ru/cpp-beginners/thread335201.html
Вот до чего меня жизнь довела: имеем файл file.txt который содержит просто строку "Hello,World!" (с ковычками). Далее пишем такой код: #include<iostream> char hello = { #include "file.txt" }; int main(){ std::cout<<hello<<std::endl;
C++ Ошибка в коде Здравствуйте. при компиляции даже самых элементарных программ, Visual studio выдает вот такую ошибку: Ошибка 1 error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию c:\documents and settings\user\мои документы\visual studio 2008\projects\1\1\12.cpp 3 как ее исправить? подробнее

Показать сообщение отдельно
Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250

наследование классов - C++

22.07.2011, 23:55. Просмотров 825. Ответов 3
Метки (Все метки)

Здарова, народ!
Вот сижу и пытаюсь сделать задание из книги по которой "учимся программировать в универе",
а там такой поворот событий , что я не понял как сделать. Помогите как накатать ето задание в коде.
Теперь само задание:
1) добавьте в базовый и производный классы еще один конструктор с параметрами - толщиной оболочки thickness и наполнителем filter, обеспечив тем самым возможность перегрузки конструкторов;
2) сделайте в базовом классе функцию вычисления веса тела перегружаемой, добавив еще одну функцию для случая с наполнителем P=p1*V1+p2(V-V1).
Код свой привожу ниже, вопрос основной что делать с этим конструктором и как его вставить.
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
#include<iostream.h>
#include<math.h>
#include<conio.h>
#include<string.h>
 
enum shape{prizm,parallelepiped,cube,pyramid,cone,cylinder};
enum color{red,yellow,green,blue,white};
enum material{metal,wood,plastic,cardboard};
enum filter{water,milk,air,quartz_sand,vegetable_oil};
 
class Body
{
   private:
  char* name_obj;
  shape forma_obj;
  float H;
  float So;
  float Sb;
  float Sp;
  float V;
  float k;
  float P;
  float p1,p2;
  color    col_c;
  material mat_m;
  filter   fil_f;
  float thickness;
  float V1;
  float P1;
 
   public:
  float get_V()
  {
    float V=So*H*k;
    return V;
  }
 
  float get_P()
  {
    float P=p1*get_V();
    return P;
  }
 
  float get_V1()
  {
    float V1=Sp*thickness;
    return V1;
  }
 
  float get_P1()
  {
    float P1=get_P()+p2*(V-V1);
    return P1;
  }
 
 Filter(filter f,float thickness)
       {
         fil_f=f;
       }
 
 Body(char *name,color c,material m,shape forma,filter f)
      {
        name_obj=new char[strlen(name)+1];
        strcpy(name_obj,name);
        col_c=c;
        mat_m=m;
        forma_obj=forma;
        fil_f=f;
        switch(col_c)
             {
               case red:    cout<<"red ";
                            break;
               case yellow: cout<<"yellow ";
                            break;
               case green:  cout<<"green ";
                            break;
               case blue:   cout<<"blue ";
                            break;
               case white:  cout<<"white ";
                            break;
               default: cout<<"Нет такого цвета.";
                        break;
             }
        switch(mat_m)
             {
               case metal:      cout<<"metal ";
                                p1=7.874;        //плотность железа
                                break;
               case wood:       cout<<"wood ";
                                p1=0.861;       //плотность дуба
                                break;
               case plastic:    cout<<"plastic ";
                                p1=1.235;       //плотность пластика
                                break;
               case cardboard:  cout<<"cardboard ";
                                p1=0.689;       //плотность картона
                                break;
               default: cout<<"Нет такого материала.";
                        break;
             }
           if(p1!=0)
             {
               get_P();
             }
        switch(forma_obj)
              {
               case prizm:          cout<<"prizm ";
                                    k=1.0;
                                    break;
               case parallelepiped: cout<<"parallelepiped ";
                                    k=1.0;
                                    break;
               case cube:           cout<<"cube ";
                                    k=1.0;
                                    break;
               case pyramid:        cout<<"pyramid ";
                                    k=1.0/3.0;
                                    break;
               case cone:           cout<<"cone ";
                                    k=1.0/3.0;
                                    break;
               case cylinder:       cout<<"cylinder ";
                                    k=1.0;
                                    break;
               default:cout<<"Неизвестная фигура.\n";
             }
         if (k!=0)
          {
            get_V();
          }
        switch(fil_f)
               {
                 case water:         cout<<"water ";
                                     p2=1;         //плотность воды при 4С
                                     break;
                 case milk:          cout<<"milk ";
                                     p2=1.032;     //плотность молока при 20С
                                     break;
                 case air:           cout<<"air ";
                                     p2=0.001293;  //плотность воздуха при 20С
                                     break;
                 case quartz_sand:   cout<<"quartz_sand ";
                                     p2=2.65;      //плотность кварцеврго песка
                                     break;
                 case vegetable_oil: cout<<"vegetable_oil ";
                                     p2=0.87;      //плотность растительного масла
                                     break;
                 default: cout<<"Нет такого наполнителя.";
                          break;
               }
         if(p2!=0)
           {
             get_P1();
           }
        }
 
 
  void Display()
 {
   cout<<"Имя объекта - "<<name_obj<<"."<<endl;
   cout<<"Форма объекта - "<<forma_obj<<"."<<endl;
   cout<<"Площадь основания равна:          \tSo="<<So<<endl;
   cout<<"Площадь боковой поверхности равна:\tSb="<<Sb<<endl;
   cout<<"Площадь полной поверхности равна: \tSp="<<Sp<<endl;
   cout<<"Объем обекта равен:               \tV="<<get_V()<<endl;
   cout<<"Вес объекта равен:                \tP="<<get_P()<<endl;
   cout<<"Hello! I`m an object "<<name_obj<<" - "<<col_c<<' '<<mat_m<<' '<<forma_obj<<".\n";
 }
 
  ~Body()
  {  delete[]name_obj;  }
 
  void get_H(float H)
       {  this->H=H;    }
  void get_So(float So)
       {  this->So=So;  }
  void get_Sb(float Sb)
       {  this->Sb=Sb;  }
  void get_Sp(float Sp)
       {  this->Sp=Sp;  }
};
 
 class cl_prizm: public Body
{
  public:
  Filter(filter f,float thickness)
       {
         fil_f=f;
       }
 
  cl_prizm(char *name,color c,material m,shape forma,filter f,float H,float So,float Sb,float Sp):Body(name,c,m,forma,f)
 {
    get_H(H);
    get_So(So);
    get_Sb(Sb);
    get_Sp(Sp);
  }
};
Добавлено через 9 часов 8 минут
народ что делать с конструктором

Добавлено через 1 час 12 минут
народ помогите плиз
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:47. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru