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

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

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

таблица виртуальных функций C++
функции класса раздела private реализуються так же как и раздела public? в смысле виртуальных функций, дружественных функций, и т.д. C++
C++ Таблица виртуальных функций
C++ перегрузка виртуальных функций
Замена виртуальных функций шаблонами C++
Использование свойства полиморфизма и исследование механизма виртуальных функций C++
Странное наследование виртуальных функций C++
C++ Механизм виртуальных функций

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
а как ее запустить?у меня не запускается(
Yandex
Объявления
06.06.2012, 10:46     Использование виртуальных функций
Ответ Создать тему
Опции темы

Текущее время: 21:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru