Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/8: Рейтинг темы: голосов - 8, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 14

наследование классов, не могу найти ошибку в С++

29.11.2011, 13:45. Показов 1706. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вот код
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
#include <math.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
 enum  TShape  {SHAPE_PRISM=0, SHAPE_PARALLELEPIPED, SHAPE_CUBE, SHAPE_PYRAMID, SHAPE_CON, SHAPE_CYLINDER};
 enum  TColor  {COLOR_RED=0, COLOR_YELLOW, COLOR_GREEN, COLOR_BLUE, COLOR_WHITE};
 enum  TMaterial  {MATERIAL_METAL=0, MATERIAL_WOOD, MATERIAL_PLASTIC, MATERIAL_CARDBOARD};
 
class TBody
{
  protected:
    char*       fName;
    TShape      fShape;
    TColor      fColor;
    TMaterial   fMaterial;
    double      fH;
    double      fV;
    double      fP;
    double      fBaseSqr;
    double      fSideSqr;
    double      fFullSqr;
    double      fVolumeKoef;
   
 
 public:
    TBody   (char* Name, TShape Shape, double VolumeKoef,TColor  Color,TMaterial  Material);
    ~TBody  ();
}; // .class TBody
 
class Prism_Inscribed_Rectilineal_Triangl:public TBody
{
  protected:
    double  fA;
public:
   Prism_Inscribed_Rectilineal_Triangl (char* Name, double A, double H,TColor Color,TMaterial  Material);
 
    void  Init (double A, double H);
    void  Print ();
}; // .class  Prism_Inscribed_Rectilineal_Triangl
 
TBody::TBody (char* Name, TShape Shape, double VolumeKoef,TColor Color,TMaterial  Material)
{
  this->fName = new char[strlen(Name)];
  strcpy(this->fName, Name);
  this->fShape      = Shape;
  this->fVolumeKoef = VolumeKoef;
  this->fColor      =Color;
  this->fMaterial   =Material;
}
TBody::~TBody ()
{
  delete[] this->fName;
}
 
Prism_Inscribed_Rectilineal_Triangl::Prism_Inscribed_Rectilineal_Triangl(char* Name, double A, double H,TColor Color,TMaterial Material): TBody(Name,TShape Shape,TColor  Color,TMaterial  Material)
{
  this->Init(A, H);
}
 
 
void Prism_Inscribed_Rectilineal_Triangl::Init (double A, double H)
{
  this->fA        = A;
  this->fH        = H;
  this->fBaseSqr  = sqrt(3/4.0) * this->fA * this->fA;
  this->fSideSqr  = 2 * this->fA * this->fH;
  this->fFullSqr  = this->fBaseSqr + this->fSideSqr;
  this->fV        = this->fVolumeKoef * this->fBaseSqr * this->fH;
  this->fP        = this->fMaterial * this->fH;
}
 
void Prism_Inscribed_Rectilineal_Triangl ::Print ()
{
  printf
  (
    "Name: %s;\nStorona: %lf;\nHeight: %lf;\nBaseSqr: %lf;\nSideSqr: %lf;\nFullSqr: %lf;\nVolume: %lf;\weight : %lf;\n\n",
    this->fName,
    this->fA,
    this->fH,
    this->fBaseSqr,
    this->fSideSqr,
    this->fFullSqr,
    this->fV
    this->fP );
}
 
int main ()
{
 Prism_Inscribed_Rectilineal_Triangl *prisma1  = new Prism_Inscribed_Rectilineal_Triangl("C1", 3.0, 10.0);
  Prism_Inscribed_Rectilineal_Triangl *prisma2  = new Prism_Inscribed_Rectilineal_Triangl("C2", 5.0, 1.0);
 
  prisma1->Print();
  prisma2->Print();
 
  delete prisma1;
  delete prisma2;
 
  getch();
  return 0;
}
 Комментарий модератора 
нона, используйте тег вставки кода :
[CPP ]без пробелов[ /CPP] или кнопка C++ на панели окна редактирования сообщения
Правила
2.8. Используйте тэги форматирования текста для удобства восприятия ваших сообщений другими пользователями.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.11.2011, 13:45
Ответы с готовыми решениями:

Наследование шаблонных классов: найти причины возникновения ошибки в коде и исправить эту ошибку
подскажите почему появляется такая ошибка error C2248: 'Base&lt;int,float&gt;::value1' : cannot access protected member declared in class...

Не могу найти ошибку.Наследование
Есть код,не компилиться,выдает ошибку,код такой /*13. Задание 1. Создать класс Function с методом вычисления значения функции y=f(x) ...

Не могу разобраться с наследование классов
Здравствуйте, уважаемые форумчане. У меня огромные проблемы с наследованием классов. Куча ошибок появляется, не знаю в какую сторону копать...

5
43 / 40 / 2
Регистрация: 21.09.2009
Сообщений: 145
29.11.2011, 13:59
Цитата Сообщение от нона Посмотреть сообщение
Prism_Inscribed_Rectilineal_Triangl (char* Name, double A, double H,TColor Color,TMaterial Material);
Конструктор класса имеет 5 параметров вы передаете три параметра
C++
1
Prism_Inscribed_Rectilineal_Triangl *prisma1 = new Prism_Inscribed_Rectilineal_Triangl("C1", 3.0, 10.0);
должно быть так
C++
1
Prism_Inscribed_Rectilineal_Triangl *prisma1 = new Prism_Inscribed_Rectilineal_Triangl("C1", 3.0, 10.0,COLOR_RED,MATERIAL_METAL);
1
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 14
29.11.2011, 17:22  [ТС]
не получается выдает такие ошибки:
1.In constructor `Prism_Inscribed_Rectilineal_Triangl::Pr ism_Inscribed_Rectilineal_Triangl(char*, double, double, TColor, TMaterial)'
2. expected primary-expression before "Shape"
3.expected primary-expression before "Color"
4. expected primary-expression before "Material"
5. [Warning] unknown escape sequence '\w'
6. In member function `void Prism_Inscribed_Rectilineal_Triangl::Pri nt()':
7. expected `)' before "this"
0
43 / 40 / 2
Регистрация: 21.09.2009
Сообщений: 145
29.11.2011, 20:16
Цитата Сообщение от нона Посмотреть сообщение
.In constructor `Prism_Inscribed_Rectilineal_Triangl::Pr ism_Inscribed_Rectilineal_Triangl(char*, double, double, TColor, TMaterial)'
2. expected primary-expression before "Shape"
3.expected primary-expression before "Color"
4. expected primary-expression before "Material"
5. [Warning] unknown escape sequence '\w'
6. In member function `void Prism_Inscribed_Rectilineal_Triangl::Pri nt()':
7. expected `)' before "this"
внимательно перепишите ошибки связанны с синтаксисом
0
0 / 0 / 0
Регистрация: 16.10.2011
Сообщений: 14
03.12.2011, 15:08  [ТС]
[C++ Error] main.cpp(56): E2451 Undefined symbol 'Shape'
[C++ Error] main.cpp(56): E2285 Could not find a match for 'TBody::TBody(char *,undefined,double,TColor,TMaterial)'
[C++ Error] main.cpp(86): E2121 Function call missing )
0
2022 / 1621 / 489
Регистрация: 31.05.2009
Сообщений: 3,005
03.12.2011, 17:30
Цитата Сообщение от нона Посмотреть сообщение
не могу найти ошибку в С++
Вам не нужно ничего искать, компилятор уже всё нашёл, осталось только исправить. Единственное, о чём компилятор вам не скажет - в 44-ой строке
C++
1
this->fName = new char[strlen(Name)];
дожно быть
C++
1
this->fName = new char[strlen(Name) + 1]; // 1 элемент под '\0'
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.12.2011, 17:30
Помогаю со студенческими работами здесь

Не могу понять, в чем ошибка. Наследование классов
Начал изучать наследование классов и и &quot;затормозил&quot; на такой простенькой программе. Не могу понять в чем ошибка. #include...

Наследование классов С++ (не могу правильно унаследовать базовый класс)
Здравствуйте, вот хочу разобраться как правильно унаследовать класс. Задача такова, унаследовать ранее написанный мною класс, добавив в...

Найти площадь правильного шестиугольника, использовать наследование классов
Найти площадь правильного шестиугольника, использовать наследование классов.

Не могу обнаружить ошибку в учебной программе из книги (шаблоны классов)
Вот упрощённый код учебной программы из книжки Детейла. Не компилится, пишет: /123/main.cpp|21|error: request for member ‘print’ in ‘l’,...

Автоматическая генерация классов С ++ с UML диаграмм классов. Наследование в с++. Абстрактные классы. WhiteStarUML
Создать классовую модель(желательно в WhiteStarUML), которая включает в себя абстрактный класс CGraphicsObject, его наследник - базовый...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru