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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Андрей2000
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 4
#1

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

05.02.2014, 09:56. Просмотров 1049. Ответов 9
Метки нет (Все метки)

Помогите написать,не врублюсь как писать много пропустил ((
Задание:Создать абстрактный базовый класс с виртуальными функциями - площадь и периметр. Создать производные классы: прямоугольник, круг, трапеция со своими функциями площади и периметра.
Буду очень благодарен !
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2014, 09:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создать абстрактный базовый класс с виртуальными функциями - площадь и периметр (C++):

Создать абстрактный базовый класс Тройка чисел с виртуальными методами увеличения на 1. Создать производный класс Время со своими функциями - C++
Здравствуйте, пожалуйста помогите написать код к данной задаче, с таким условием: Создать абстрактный базовый класс Тройка чисел с...

Класс: Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра. - C++
Создать абстрактный базовый класс Figure с виртуальными методами вычисления площади и периметра. Создать производные классы: Rectangle...

Создать абстрактный базовый класс с виртуальными методами вычисления функции y в заданной точке х - C++
создать абстрактный базовый класс function с виртуальными методами вычисления ф-ции y=f(x) в заданной точке х и вывода результата на...

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

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

Создать абстрактный базовый класс Body (тело) с виртуальными методами вычисления площади поверхности и объема - C++
Создать абстрактный базовый класс Body (тело) с виртуальными методами вычисления площади поверхности и объема. Создать производные классы:...

9
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
05.02.2014, 11:51 #2
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
class Figure
{
public:
Figure(){}
virtual double Square()=0;
virtual double Perimeter()=0;
};
class Circle:public Figure
{
double R;
public:
Circle(double Radius):R(Radius){}
virtual double Square()
{
return M_PI*R*R;
}
virtual double Perimeter()
{
return 2.*M_PI*R;
}
};
 
class Square:public Figure
{
double Side;
public:
Square(double S):Side(S){}
virtual double Square()
{
return Side*Side;
}
virtual double Perimeter()
{
return 4*Side;
}
};
1
koldya
0 / 0 / 0
Регистрация: 24.01.2013
Сообщений: 26
05.02.2014, 12:04 #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Test
{
protected:
double n = 3.14159;
public:
virtual int ploshad();
vitrual int perimetr();
}
class sircle: public test
{
private:
double R, L;
public:
void vvod(){
cout << "Enter the Radius: ";
cin >> R;
}
int ploshad(){
return S n * R * R
}
int perimetr();
return L = 2 * n * R;
}
Думаю как то так )

Добавлено через 44 секунды
ps. Есть опечатки
0
Андрей2000
0 / 0 / 0
Регистрация: 05.02.2014
Сообщений: 4
05.02.2014, 12:07  [ТС] #4
aLarman, ввожу в visual studio 2010 выбивает ошибку (
0
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
05.02.2014, 12:11 #5
koldya, в условии сказано, что нужен абстрактный базовый класс, а в вашем случае он не является таковым + инициализация данных внутри определения - как так?

Андрей2000, смотрите на вариант aLarman.
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
05.02.2014, 12:49 #6
Цитата Сообщение от Андрей2000 Посмотреть сообщение
ввожу в visual studio 2010 выбивает ошибку
какую хоть скажите
куда добавили?
проект создали? в майне пробовали создавать экземпляры классов?

Добавлено через 12 минут
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
#include "stdafx.h"
#include <iostream>
#include <math.h>
 
#ifndef M_PI   //странно почему M_PI считается неопределнным, хотя math.h подключен поэтому добавил вот это
#define M_PI 3.14159265358979323846
#endif
using namespace std;
 
 
class Figure
{
public:
    Figure(){}
    virtual double Square()=0;
    virtual double Perimeter()=0;
};
class Circle:public Figure
{
    double R;
public:
    Circle(double Radius):R(Radius){}
    virtual double Square()
    {
        return M_PI*R*R;
    }
    virtual double Perimeter()
    {
        return 2.*M_PI*R;
    }
};
 
class Squared:public Figure
{
    double Side;
public:
    Squared(double S):Side(S){}
    virtual double Square()
    {
        return Side*Side;
    }
    virtual double Perimeter()
    {
        return 4*Side;
    }
};
int main()
{
    Squared S(5);
    cout << S.Square()<<endl;
    cout << S.Perimeter()<<endl;
    Circle C(10);
    cout << C.Square()<<endl;
    cout << C.Perimeter()<<endl;
    system("pause");
    return 0;
}
Добавлено через 3 минуты
о нашел в начале, до объявления класса заменить на
C++
1
2
3
4
5
6
7
#include "stdafx.h"
#define _USE_MATH_DEFINES
#include <iostream>
 
#include <math.h>
 
using namespace std;
1
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
13.04.2014, 17:34 #7
А как добавить площадь и периметр прямоугольника и прямоугольника?
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
14.04.2014, 09:15 #8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Rect : public Figure
{
 double a;
 double b;
public:
    Rect(double x, double y):a(x), b(y){}
    virtual double Square()
{
return a*b;
}
    virtual double Perimeter()
{
return 2.*a + 2.*b;
}
};
0
MahovIV
5 / 6 / 1
Регистрация: 17.09.2013
Сообщений: 337
14.04.2014, 15:10 #9
А как вызвать функцию в программе? Всё усложняет то, что тут два параметра.
0
aLarman
642 / 563 / 89
Регистрация: 13.12.2012
Сообщений: 2,109
14.04.2014, 16:53 #10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int main()
{
    Squared S(5);
    cout << S.Square()<<endl;
    cout << S.Perimeter()<<endl;
    Circle C(10);
    cout << C.Square()<<endl;
    cout << C.Perimeter()<<endl;
    Rect Rec(15, 5);
    cout<<Rec.Square()<<endl;
    cout<<Rec.Perimeter()<<endl;
    system("pause");
    return 0;
}
0
14.04.2014, 16:53
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2014, 16:53
Привет! Вот еще темы с ответами:

Создать базовый класс список. Реализовать на базе списка стек и очередь с виртуальными функциями вставки и вытаскивания - C++
Здравствуйте, помогите пожалуйста разобраться что как работает в программе (напишите комментарии). Задание: Создать базовый класс...

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

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

Создать класс - данные - абстрактный базовый класс. Создать производные классы - C++
Всем привет! У меня вот такая проблема.... Создать класс - данные - абстрактный базовый класс. Создать производные классы - данные типа...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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