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

виртуальные функции - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 5.00
Mr. Pyatachok
 Аватар для Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
09.08.2011, 21:13     виртуальные функции #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
#include<iostream.h>
#include<conio.h>
#include<string.h>
 
enum Shape{prizm,parallelepiped,cube,pyramid,cone,cylinder};
 
class Body
{   private:
  char* Name;
  Shape shape_s;
  float H,So,Sb,Sp,V,p,k;
 
   public:
  Body(char* name,Shape s);
  ~Body();
  float get_V();
  virtual float get_H(float H)const=0;
  virtual float get_So(float So)const=0;
  virtual float get_Sb(float Sb)const=0;
  virtual float get_Sp(float Sp)const=0;
  void Display();
};
 
  Body::Body(char *name,Shape s)
{  Name=new char[strlen(name)+1];
   strcpy(Name,name);
   shape_s=s;
   switch(s)
          {
            case prizm:          k=1.0;                  break;
            case parallelepiped: k=1.0;                  break;
            case cube:           k=1.0;                  break;
            case pyramid:        k=1.0/3.0;              break;
            case cone:           k=1.0/3.0;              break;
            case cylinder:       k=1.0;                  break;
            default:cout<<"Неизвестная фигура."; break;
          } if(k!=0){ get_V(); }
}
 
  Body::~Body()
  {delete[]Name;}
 
  float Body::get_V()
  {float V=So*H*k; return V;}
 
 
   void Body::Display()
  {cout<<"Имя объекта - "<<Name<<"."<<endl;
   cout<<"Форма объекта - "<<shape_s<<"."<<endl;
   cout<<"Площадь основания равна:                 \tSo="<<So<<endl;
   cout<<"Площадь боковой поверхности равна:       \tSb="<<Sb<<endl;
   cout<<"Площадь полной поверхности равна:        \tSp="<<Sp<<endl;
   cout<<"Объем обекта равен:                      \tV="<<get_V()<<endl;}
 
class class_prizm:public Body
{   public:
  class_prizm(char *name,Shape s,float H,float So,float Sb,float Sp):Body(name,s)
 {
  float get_H(H)
  {return H;}
  float get_So(So)
  {return So;}
  float get_Sb(Sb)
  {return Sb;}
  float get_Sp(Sp)
  {return Sp;}
 }
};
[C++ Error] Unit1.cpp(60): E2141 Declaration syntax error
[C++ Error] Unit1.cpp(67): E2139 Declaration missing ;
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.08.2011, 21:13     виртуальные функции
Посмотрите здесь:

C++ Виртуальные функции
C++ виртуальные функции
виртуальные функции C++
Виртуальные функции C++
C++ Виртуальные функции
Виртуальные функции C++
C++ Виртуальные функции
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Mr. Pyatachok
 Аватар для Mr. Pyatachok
8 / 8 / 0
Регистрация: 30.06.2011
Сообщений: 250
10.08.2011, 03:27  [ТС]     виртуальные функции #21
Все, вопросов больше нет, окончательно разобрался, еще раз огромное Вам спасибо, извините что потратил Ваше время, спасибо за объяснения (да и за нервы, которые хватило чтобы разобраться чего я хотел), ого, уже поздно, спокойной ночи, еще раз огромное спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.08.2011, 04:37     виртуальные функции
Еще ссылки по теме:

C++ Виртуальные функции
Виртуальные функции C++
Виртуальные функции C++
C++ виртуальные функции
виртуальные функции C++

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

Или воспользуйтесь поиском по форуму:
агерон
 Аватар для агерон
265 / 264 / 33
Регистрация: 12.10.2009
Сообщений: 1,040
10.08.2011, 04:37     виртуальные функции #22
Mr. Pyatachok ты не изучил код программы который тебе был предоставлен наследование классов не начал читать те книги что я тебе советовал. и возишься скорее всего в добавок не с своим кодом. Если бы ты изучал С++ с основ с того какой у него синтаксис и тому подобное ты бы понимал что "Declaration syntax error" - означает ошибку синтаксиса языка а "Declaration missing ;" - осутствие в тексте программы оператора "точка с запятой". разбирался бы в устройстве элемента языка Enum, массивах и прочих базовых конструкциях языка.

P. S. изучи тот код что я написал. и поверь там нет ничего лишнего, если что - то равняется 0 значит оно должно ему равняться т. к. используются базовые возможности языка

P. P. S. тебе рано работать с ООП вообще и виртуальными функциями в частности. Выучи основы и избався от "детских болячек" начинающего программиста

1) выучи базовый синтаксис и базовые операторы/операции/функции языка
2) научись форматировать код
3) найди описание стандартных ошибок IDE которую используешь

и лишь после этого начинай учить ООП. И самое главное не смешивай тексты програм без полного понимания логики работы кода
Yandex
Объявления
10.08.2011, 04:37     виртуальные функции
Ответ Создать тему
Опции темы

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