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

Корректно ли я написал наследование? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вычислить произведение по формуле http://www.cyberforum.ru/cpp-beginners/thread1129835.html
29. так же без массивов
C++ Найти количество нечетных элементов последовательности 29. Дана последовательность целых чисел, за которой следует 0. Найти количество нечетных элементов этой последовательности. без массивов http://www.cyberforum.ru/cpp-beginners/thread1129832.html
Найти номер максимального элемента в последовательности C++
7. Дана последовательность из n целых чисел. Найти номер максимального элемента в этой последовательности. без массивов
C++ Вычислить значение выражения
Вычислить P=(1+sin 0,1)(1+sin 0,2)...(1+sin 10). При решении задачи использовать все типы циклов(for,while,do while). Массивы при решении задачи не используются.
C++ Создать макросы для вычисления среднего из двух и среднего из трех цифр http://www.cyberforum.ru/cpp-beginners/thread1129825.html
Создать макросы для вычисления среднего из двух и среднего из трех цифр.
C++ Произведение ненулевых элементов массива помогите, начал изучать С++ недавно, столкнулся с проблемой с массивами 1) Мне нужно создать массив на N элементов (ввожу с клавиатуры) и заполнить случайными вещественными числами 2) И посчитать Произведение ненулевых элементов данного массива Вопрос: при компиляции выводит не то, сам не могу разобраться почему Помогите :) #include "stdafx.h" #include <iostream> #include <conio.h>... подробнее

Показать сообщение отдельно
poliglot
0 / 0 / 0
Регистрация: 04.01.2013
Сообщений: 13

Корректно ли я написал наследование? - C++

26.03.2014, 01:01. Просмотров 287. Ответов 9
Метки (Все метки)

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

Корректно ли решение или я чего-то не так(не совсем так) делаю? И правильно ли я создал абстрактный класс?

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
#include <iostream>
#include <conio.h>
 
using namespace std;
class Figure{
public:
    int x,y;//Координаты
    Figure(int x=0, int y=0){
    this->x=x;
    this->y=y;
    }
    virtual double  Area()=0;
    virtual void    Center()=0;
    virtual double  Perimetr()=0;
};
 
class Circle:public Figure{
    const double pi;
    double R;
public:
    Circle():Figure(),pi(3.14159){
    cout<<"Введите координаты центра окружности: ";
    cin>>x>>y;
    cout<<"Введите радиус: ";
    cin>>R;
    }
 
   double Area(){
    return pi*R*R;
   }
 
   double Perimetr(){
    return 2*pi*R;
   }
   void Center(){
    cout<<"Центр тяжести: ("<<x<<","<<y<<")";
   }
 
 
};
 
class Rectangle:public Figure{
public:
    int x1,y1;
    Rectangle(int z):Figure(){
    cout<<"Введите координаты левого нижнего угла:";
    cin>>x>>y;
    cout<<"Введите координаты правого верхнего угла:";
    cin>>x1>>y1;
    }
    double Area(){
    return (x1-x)*(y1-y);
    }
 
    double Periment(){
    return 2*( (x1-x)+(y1-y) );
    }
 
    void Center(){
    cout<<"Центр тяжести: ("<<(x1-x)/2<<","<<(y1-y)/2<<")";
    }
};
 
 
void main(){
   setlocale(LC_ALL,"Russian");
   Circle a;
   cout<<a.Area()<<endl;
   cout<<a.Perimetr()<<endl;
   a.Center();
    _getch();
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru