Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Удаление структур https://www.cyberforum.ru/ cpp-beginners/ thread2179013.html
Здравствуйте! Такая проблема - пишу задачу видео магазин, ф-цию ввода и вывода написал, а удаления не могу:( Помогите закончить задачу. На сайте я нашел несколько тем по структурам, но как а обычно там нет ничего про удаление, да и в гугле тож , а если и есть , то каким то хитрым способом- типа деструкторы или вектора, но ООП не катит надо написать самый простой и примитивный способ удаления. К...
C++ Как изменить тип данных на абстрактный?
#include <iostream> #include <cstdlib> using namespace std; double *getSequence(int n) { double *sequence = new double; for (int i = 0; i < n; i++) { cout << "Enter A" << (i + 1) << ": "; cin >> sequence;
C++ Переписать в новый массив элементы матрицы, кратные заданному значению Дана матрица А n*m. Переписать в новый массив d элементы матрицы, кратные заданному значению А https://www.cyberforum.ru/ cpp-beginners/ thread2178972.html C++ Перегрузка бинарных операторов для структуры в шаблонной функции Добрый вечер уважаемые. Прошу помочь т.к. компилятор решил поставить меня в угол) Текст ошибки: 006.cpp(21): error C2804: бинарный "operator *" имеет слишком много параметров 006.cpp(27): см. ссылку на создание экземпляров класса шаблон при компиляции "Mass<T>" Перезагрузку Mass& operator *(Struc &left, int &o); сделал для кода: sum = a*j; Если убрать один из параметров,... https://www.cyberforum.ru/ cpp-beginners/ thread2178964.html
C++ Как понять программу
У меня присутствует данный код: #include <iostream> #include <cstring> using namespace std; const int ArSize = 20; int main() { cout<<"Enter a word:\n";
C++ Ошибка линковки https://www.cyberforum.ru/ cpp-beginners/ thread2178943.html
Вот список инклудов: #define _CRT_SECURE_NO_WARNINGS #include "stdafx.h" #include <stdio.h> #include <stdlib.h> #include <ShlObj.h> #include <windows.h> #include <shellapi.h> #include <shlwapi.h> #include <memory.h>
C++ Найти корень с погрешностью https://www.cyberforum.ru/ cpp-beginners/ thread2178927.html
Здравствуйте. Дано уравнение и надо найти корень методом дихотомии с погрешностью. Вот программа, но надо написать функцию как параметр. К сожалению, я не знаю как это сделать. Помогите пожалуйста. Заранее спасибо) #include <stdio.h> #include <vcl.h> #include <conio.h> #include <iostream.h> #include <math.h> #define PI 3.1415
C++ Sha512 получить хеш по ключу
Ребят всем привет, помогите пожалуйста, уже несколько часов пытаюсь в инете найти решение своей проблемы, в чём суть - нужно сгенерировать хеш из данных с ключём, короче аналог пхп функции hash_hmac("sha512", "Данные", "Ключ"); собрал и подключил библиотеку openssl, подключил файлик hmac.h, но найти хорошего примера не могу, или нахожу но там восномной что то такого плана: #include...
C++ Дано четырехзначное натуральное число. Выяснить какая из двух его частей больше Дано четырехзначное натуральное число. Выяснить какая из двух его частей больше. https://www.cyberforum.ru/ cpp-beginners/ thread2178912.html C++ Не понимаю битовый сдвиг https://www.cyberforum.ru/ cpp-beginners/ thread2178897.html
int k; // переменная k -целая k=32;// k приравнивается к 32 k= k << 4 >> 3; // ? а эта строка?? Объясните пожалуйста...
C++ Поток ввода cin
vector<string> str; for (string s; cin >> s && !s.empty(); str.push_back(s)); // !!! for (auto &i : str) for (auto &j : i) j = toupper(j); for (decltype(str.size()) i = 0; i < str.size(); ++i) { cout << str << " "; if (i % 8 == 0) cout << endl; }
C++ Преобразование типов в операция присваивания https://www.cyberforum.ru/ cpp-beginners/ thread2178881.html
Добрый вечер, форумчане. Я новичок в программировании, изучаю C++. Читаю книгу "C++ Шаг за шагом" - Герберт Шилдт. Прошу вас объяснить мне тему "Преобразование типов в операция присваивания". Вот кусок из текста: " int х; char ch; float f; void func(void) { ch = х; /* 1 */
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
06.02.2018, 14:27 0

Создать абстрактный базовый класс "Фигура" с виртуальной функцией: "Площадь" - C++ - Ответ 12095757

06.02.2018, 14:27. Показов 5516. Ответов 1
Метки (Все метки)

Лучший ответ Сообщение было отмечено Lawr443362777 как решение

Решение

Сделал чуть по-другому, но если надо, то сможете по образцу переделать. Сделаны круг, прямоугольник, параллелограмм. Джава-стайл для скорости написания.
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
#ifndef _FIGURES_H_
#define _FIGURES_H_
 
#include <cmath>
 
#ifndef M_PI
#define M_PI 3.14159265358979323846
#endif
 
class AbstractFigure
{
  protected:
    double area;
    double perimeter;
    
    virtual void recalculateProperties() = 0;
    
  public:
    double getArea() {return area;}
    double getPerimeter() {return perimeter;}
    
    virtual ~AbstractFigure(){}
};
 
class Circle: public AbstractFigure
{
  private:
    double r;
    
  public:
    Circle(const double r)
    {
      this->r = r;
      recalculateProperties();
    }
    
    double getR() {return r;}
    void setR(const double r) 
    {
      this->r = r;
      recalculateProperties();
    }
 
  protected:
    virtual void recalculateProperties()
    {
      area = M_PI * r * r;
      perimeter = 2.0 * M_PI * r;
    }
};
 
class Rectangle: public AbstractFigure
{
  private:
    double a;
    double b;
    
  public:
    Rectangle(const double a, const double b)
    {
      this->a = a;
      this->b = b;
      recalculateProperties();
    }
    
    double getA() {return a;}
    double getB() {return b;}
    void setA(const double a) 
    {
      this->a = a;
      recalculateProperties();
    }
    
    void setB(const double b) 
    {
      this->b = b;
      recalculateProperties();
    }
    
  protected:
    virtual void recalculateProperties()
    {
      area = a * b;
      perimeter = 2.0 * (a + b);
    }
};
 
class Parallelogram: public AbstractFigure
{
  private:
    double a;
    double b;
    double alpha;
    
  public:
    Parallelogram(const double a, const double b, const double alpha)
    {
      this->a = a;
      this->b = b;
      this->alpha = alpha;
      recalculateProperties();
    }
    
    double getA() {return a;}
    double getB() {return b;}
    double getAlpha() {return alpha;}
    void setA(const double a)
    {
      this->a = a;
      recalculateProperties();
    }
    
    void setB(const double b)
    {
      this->b = b;
      recalculateProperties();
    }
    
    void setAlpha(const double alpha)
    {
      this->alpha = alpha;
      recalculateProperties();
    }
    
  protected:
    virtual void recalculateProperties()
    {
      perimeter = 2.0 * (a + b);
      area = a * b * sin(alpha);
    }
};
 
#endif
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
#include <iostream>
#include <vector>
#include <memory>
#include <typeinfo>
 
#include "Figures.h"
 
int main()
{
  std::vector<std::unique_ptr<AbstractFigure>> v;
  
  v.push_back(std::make_unique<Circle>(4.0));
  v.push_back(std::make_unique<Rectangle>(2.0, 3.0));
  v.push_back(std::make_unique<Parallelogram>(4.32, 11.71, 40.5));
  
  int i = 0;
  for (auto& figure : v)
  {
    std::cout << "Item " << ++i << " is " << typeid(*figure).name()
      << " , P = " << figure->getPerimeter() << ", S = " << figure->getArea()
      << std::endl;
  }
  
  return 0;
}


Вернуться к обсуждению:
Создать абстрактный базовый класс "Фигура" с виртуальной функцией: "Площадь" C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.02.2018, 14:27
Готовые ответы и решения:

Создать абстрактный базовый класс фигура с виртуальной функцией
Создать абстрактный базовый класс фигура с виртуальной функцией – возврат количества углов в...

Создать абстрактный базовый класс с виртуальной функцией – площадь
Собственно не уверен правильно ли я все сделал. Раскритикуйте работу что-ли :) Поправьте, если...

Создать абстрактный базовый класс с виртуальной функцией
Создать абстрактный базовый класс с виртуальной функцией – значением функций в заданной точке....

Создать абстрактный базовый класс Number с виртуальной функцией - норма
Создать абстрактный базовый класс Number с виртуальной функцией - норма. Создать производные классы...

Создать абстрактный базовый класс Figure с виртуальной функцией Периметр. Создать производные классы Rectangle
Создать абстрактный базовый класс Figure с виртуальной функцией -периметр.Создать производные...

1
06.02.2018, 14:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.02.2018, 14:27
Помогаю со студенческими работами здесь

Создать абстрактный базовый класс с виртуальной функцией - Объем. Создать производные классы: Пирамида, Шар со своими функциями объема
Создать абстрактный базовый класс с виртуальной функцией - Объем. Создать производные классы:...

Создайте базовый абстрактный класс «Товар» с чистой виртуальной функцией вывода данных
Создайте базовый абстрактный класс «Товар» с чистой виртуальной функцией вывода данных. В этом...

Создать базовый класс с Виртуальной функцией
Создать абстрактный базовый класс с виртуальной функцией - корни уравнения. Создать производные...

Создать абстрактный базовый класс с виртуальными функциями - площадь и периметр
Помогите написать,не врублюсь как писать много пропустил (( Задание:Создать абстрактный базовый...

Создать абстрактный базовый класс Integer(целое) с виртуальными арифметическими операциями и функцией вывода на экран
Помогите,пожалуйста! Не знаю как делать:( Создать абстрактный базовый класс Integer(целое) с...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru