Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 16.06.2011
Сообщений: 151
1

Использование виртуальных функций

25.05.2012, 20:23. Просмотров 760. Ответов 2
Метки нет (Все метки)

Дан класс "треугольник", который определяется длиной одной из сторон и значениями
прилегающих двух углов. Создать соответствующие методы:
 задания значения длины стороны и двух углов;
 нахождения других характеристик треугольника: величины углов и длин сторон;
 вычисления периметра.
 вывода параметров треугольника (виртуальный метод)
Создать производный класс "равносторонний треугольник". Создать объекты классов "треугольник"
и "равносторонний треугольник". Найти другие характеристики созданных треугольников и их
периметры.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2012, 20:23
Ответы с готовыми решениями:

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

Использование свойства полиморфизма и исследование механизма виртуальных функций
Создайте класс Matr, определите в нем виртуальную функцию-член matrica(int n), которая определяет...

Вызов виртуальных функций
Доброго времени суток, форумчане! Стоит такая задача: Есть класс, который содержит три чисто...

Таблица виртуальных функций
Доброго дня! Не могу найти, подскажите, пожалуйста, таблица виртуальных функций же только одна для...

2
17 / 17 / 15
Регистрация: 10.01.2012
Сообщений: 34
26.05.2012, 20:59 2
Лучший ответ Сообщение было отмечено urbinol как решение

Решение

Вот так, например:
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
#include <iostream>
#include <math.h>
using namespace std;
 
class Triangle
{
public:
    Triangle(float side = 0.0, float b = 0.0,
             float c = 0.0):
        sideA(side), angleB(b), angleC(c) { }
    void setSide(float s) { sideA = s; }
    void setAngleB(float b) { angleB = b; }
    void setAngleC(float c) { angleC = c; }
    float perimetr();
    float angleA();
    float sideB();
    float sideC();
    virtual void printParams();
 
protected:
    float sideA;
    float angleB;
    float angleC;
};
 
class EquilateralTriangle : public Triangle {
public:
    EquilateralTriangle(float side = 0.0, float b = 0.0,
                        float c = 0.0): Triangle(side, b, c) { }
    virtual void printParams();
};
 
int main()
{
    Triangle tr(23, 60, 45);
    EquilateralTriangle eqtr(4, 60, 60);
    tr.printParams();
    cout << endl;
    eqtr.printParams();
 
    return 0;
}
 
float Triangle::angleA()
{
    return (180.0 - (angleB + angleC));
}
 
float Triangle::sideB()
{
    return (sideA*sin(angleB*3.14/180))/sin(angleA()*3.14/180);
}
 
float Triangle::sideC()
{
    return (sideA*sin(angleC*3.14/180))/sin(angleA()*3.14/180);
}
 
float Triangle::perimetr()
{
    return sideA + sideB() + sideC();
}
 
void Triangle::printParams()
{
    cout << "Triangle:" << endl
         << "Sides: A = " << sideA << ", B = "
         << sideB() << ", C = " << sideC() << endl
         << "Angles: A = " << angleA() << ", B = "
         << angleB << ", C = " << angleC << endl
         << "Perimetr = " << perimetr() << endl;
}
 
void EquilateralTriangle::printParams()
{
    cout << "Equilateral Triangle:" << endl
         << "Side = " << sideA << endl
         << "Perimetr = " << perimetr() << endl;
}
1
0 / 0 / 0
Регистрация: 16.06.2011
Сообщений: 151
06.06.2012, 10:46  [ТС] 3
а как ее запустить?у меня не запускается(
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2012, 10:46

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Механизм виртуальных функций
Всем привет! Имею базовый абстрактный класс: class Interface { public: //функция...

Перегрузка виртуальных функций
please HELP! перегружаю виртуальную функцию в абстрактном классе. class ONE { virtual...

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

Полиморфизм и исследование виртуальных функций
Добавьте в состав класса виртуальную функцию просмотра текущего объекта print (), а в производный...


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

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

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