Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
 Аватар для Mr. Pyatachok
8 / 9 / 1
Регистрация: 30.06.2011
Сообщений: 250

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

09.08.2011, 21:13. Показов 2249. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, помогите с исправлением функции
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 ;
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.08.2011, 21:13
Ответы с готовыми решениями:

Виртуальные и чисто виртуальные функции
Чем они отличаются?? если можно, с примерами. И как из виртуальной функции сделать чисто виртуальную? #include &lt;iostream&gt; using...

Виртуальные функции
Какие происходят изменения, когда в классе объявляем одну или несколько функций виртуальными? Вот, например, если в SuperClass перед...

Виртуальные функции С++
Задача: В классе хранится целое, и определяется виртуальная функция shownum(). Создать 2 производных класса, наследующие класс num. В...

21
 Аватар для Mr. Pyatachok
8 / 9 / 1
Регистрация: 30.06.2011
Сообщений: 250
10.08.2011, 03:27  [ТС]
Студворк — интернет-сервис помощи студентам
Все, вопросов больше нет, окончательно разобрался, еще раз огромное Вам спасибо, извините что потратил Ваше время, спасибо за объяснения (да и за нервы, которые хватило чтобы разобраться чего я хотел), ого, уже поздно, спокойной ночи, еще раз огромное спасибо
0
 Аватар для агерон
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
10.08.2011, 04:37
Mr. Pyatachok ты не изучил код программы который тебе был предоставлен наследование классов не начал читать те книги что я тебе советовал. и возишься скорее всего в добавок не с своим кодом. Если бы ты изучал С++ с основ с того какой у него синтаксис и тому подобное ты бы понимал что "Declaration syntax error" - означает ошибку синтаксиса языка а "Declaration missing ;" - осутствие в тексте программы оператора "точка с запятой". разбирался бы в устройстве элемента языка Enum, массивах и прочих базовых конструкциях языка.

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

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

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

и лишь после этого начинай учить ООП. И самое главное не смешивай тексты програм без полного понимания логики работы кода
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.08.2011, 04:37

Виртуальные функции
Имеется базовый класс Shape: class Shape { protected: virtual void drawShape() { } } и производные классы Circle,...

виртуальные функции
Здравствуйте.Перечитал различные статьи,но не могу до конца вникнуть в смысл использования виртуальных функций.Для взаимного понимания...

Виртуальные функции
Разработать программу с использованием наследования классов, реализующую классы: Земноводное(ареал обитания)-&gt;Крокодил(род, длина,...

Виртуальные функции
На основе базового класса Страна (3 поля) создать дочерние классы Республика и Монархия(по 2 поля). Создать массив указателей на объекты...

виртуальные функции
Помогите пожалуйста, создать абстрактный класс Shape с двумя чисто виртуальными методами Area() и Print(). Определить производные классы ...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
сукцессия 43. Вторая научная статья за месяц- прайминг и гатгил
anaschu 25.07.2026
две стороны одной монеты
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru