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

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

Войти
Регистрация
Восстановить пароль
 
urbinol
0 / 0 / 0
Регистрация: 16.06.2011
Сообщений: 151
#1

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

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

Дан класс "треугольник", который определяется длиной одной из сторон и значениями
прилегающих двух углов. Создать соответствующие методы:
 задания значения длины стороны и двух углов;
 нахождения других характеристик треугольника: величины углов и длин сторон;
 вычисления периметра.
 вывода параметров треугольника (виртуальный метод)
Создать производный класс "равносторонний треугольник". Создать объекты классов "треугольник"
и "равносторонний треугольник". Найти другие характеристики созданных треугольников и их
периметры.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.05.2012, 20:23     Использование виртуальных функций
Посмотрите здесь:

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

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

перегрузка виртуальных функций - C++
please HELP! перегружаю виртуальную функцию в абстрактном классе. class ONE { virtual std::string FUN(const std::string&...

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

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

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

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

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

Практическое применение виртуальных функций - C++
Собственно препод задал вопрос, рассказал ему все про механическую сторону вопроса, мол что такое, како й принцип, а на вопрос в теме...

Замена виртуальных функций шаблонами - C++
Такая задача - нужно заменить виртуальные функции шаблонами. Можно сделать так: struct Derived1; struct Derived2; template...

В чем смысл виртуальных функций? - C++
Читаю книгу Джесс Либерти 'С++ за 21 день', не смотря на глупое название, книга очень грамотная и мне очень нравится... но прочитав...

Странное наследование виртуальных функций - C++
Что-то я туплю - почему нижеприведенный код компилируется? В предке определена pure virtual функция возвращающая rvalue, а в потомке -...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mad_svyat
17 / 17 / 0
Регистрация: 10.01.2012
Сообщений: 34
26.05.2012, 20:59     Использование виртуальных функций #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
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;
}
urbinol
0 / 0 / 0
Регистрация: 16.06.2011
Сообщений: 151
06.06.2012, 10:46  [ТС]     Использование виртуальных функций #3
а как ее запустить?у меня не запускается(
Ответ Создать тему
Опции темы

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