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

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

Войти
Регистрация
Восстановить пароль
 
goonia91
2 / 2 / 0
Регистрация: 16.10.2009
Сообщений: 65
#1

Наследование - C++

02.12.2010, 22:54. Просмотров 392. Ответов 6
Метки нет (Все метки)

Помогите пожалуйста вот с такой задачей:

Надо создать класс треугольник. Вводим три стороны и находим периметр и градусы углов. Потом создаём производный класс равносторонний треугольник, в котором надо найти площадь этого треугольника.

Первую часть я сделал, а с наследованием чё-то не получается, и не помню формулу площади равностороннего треугольника. ПОМОГИТЕ ПЛИЗ.

class Treangle
{int a,b,c,sum,al,bl,cl,p,s,pl;
public:
Treangle();
void perim();
void proc();
~Treangle();
};

Treangle::Treangle()
{cout<<"Input a= ";
cin>>a;
cout<<"Input b= ";
cin>>b;
cout<<"Input c= ";
cin>>c;
}

void Treangle:erim()
{p=a+b+c;
cout<<"Perimetr ="<<p<<endl;
}

void Treangle:roc()
{pl=(a+b+c)/2;
s=sqrt(pl*(pl-a)*(pl-b)*(pl-c));
al=2*s/a*b;
cout<<"al="<<al<<endl;
bl=2*s/b*c;
cout<<"bl="<<bl<<endl;
cl=2*s/c*a;
cout<<"cl="<<cl<<endl;
}
Treangle::~Treangle()
{a=0;
b=0;
c=0;
}


int main(int argc, char* argv[])
{ Treangle r;
r.perim();
r.proc();
r.~Treangle();
getch();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.12.2010, 22:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Наследование (C++):

Заменить наследование классов на наследование интерфейсов - C++
#include &lt;iostream&gt; #include &lt;assert.h&gt; using namespace std; int people_on_base = 100; int vehicles_on_base = 100; double...

Наследование - C++
char* Texts :: SetBit() { char a; int b; cout &lt;&lt; &quot;Получаем битовую строку&quot; &lt;&lt; endl; cin &gt;&gt; a; b = strlen(a);...

наследование - C++
Пытаюсь разобраться в наследовании Есть класс class File { public: struct comp { char num; // Имя переменной char st;...

Наследование - C++
Всем привет. Может кто нибудь подсказать с чего начать при создании класса для работы с файлами на подобии ostream( а точнее как правильно...

наследование - C++
определить базовый класс ''точка''. Затем от него определить два произвольных класса ''прямоугольник'' и ''параллелепипед'', в каждом из...

Наследование?! - C++
привет всем. Есть класс Circle c1, c2, c3 Нужно реализовать через наследование класс множество, прошу помочь как он будет выглядеть...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Tambel
32 / 32 / 2
Регистрация: 10.10.2010
Сообщений: 89
02.12.2010, 23:09 #2
void Treangle:roc()

есть же теги...)

C++
1
void Treangle::proc()
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
02.12.2010, 23:31 #3
Как-то так.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
EqualSidesTriangle:public Treangle
{
public:
   EqualSidesTriangle(int a_):a(a_), b(a_), c(a_)
   {
   }
   
   ~EqualSidesTriangle()
    {
    }
    
    const double Square() const
    {
        return (sqrt(3.0)/4.0)*(a*a);
    }
};
И пара замечаний. Ввод данных в конструкторе - это очень плохо.

C++
1
r.~Treangle();
явный вызов деструктора абсолютно не нужен, тем более это нехорошо
goonia91
2 / 2 / 0
Регистрация: 16.10.2009
Сообщений: 65
02.12.2010, 23:32  [ТС] #4
а более подробнее.

не понимаю вот эту строчку:
EqualSidesTriangle(int a_):a(a_), b(a_), c(a_)

ПЛИЗ если не сложно напишите всю вторую часть

Добавлено через 52 секунды
А что там надо делать

прост нас так учили в технаре)
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
02.12.2010, 23:41 #5
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
#include <iostream>
#include <cmath>
 
class Triangle
{int a,b,c,sum,al,bl,cl,p,s,pl;
public:
Triangle(int a_, int b_, int c_);
void perim();
void proc();
virtual ~Triangle();
};
 
Triangle::Triangle(int a_, int b_, int c_)
{
a=a_;
b=b_;
c=c_;
}
 
int Triangle:perim()
{p=a+b+c;
return p;
}
 
void Triangle:proc()
{pl=(a+b+c)/2;
s=sqrt(pl*(pl-a)*(pl-b)*(pl-c));
al=2*s/a*b;
cout<<"al="<<al<<endl;
bl=2*s/b*c;
cout<<"bl="<<bl<<endl;
cl=2*s/c*a;
cout<<"cl="<<cl<<endl;
}
 
virtual Triangle::~Triangle()
{
}
 
class EqualSidesTriangle:public Triangle
{
public:
    EqualSidesTriangle(int a_):Triangle(a_, b_, c_)
    {
    }
 
    ~EqualSidesTriangle()
    {
    }
 
    const double Square() const
    {
        return (sqrt(3.0)/4.0)*(a*a);
    }
    }
};
 
int main(int argc, char* argv[])
{ 
int a=0;
cout<<"Enter side of equal-sides triangle: ";
cin>>a;
EqualSidesTriangle r(a);
cout<< r.perim() <<'\n';
cout<< r.Square() <<'\n';
getch();
return 0;
}
goonia91
2 / 2 / 0
Регистрация: 16.10.2009
Сообщений: 65
03.12.2010, 00:33  [ТС] #6
Спасибо большое но что-то нечего не работает
ForEveR
В астрале
Эксперт С++
7970 / 4732 / 321
Регистрация: 24.06.2010
Сообщений: 10,541
Завершенные тесты: 3
03.12.2010, 00:34 #7
goonia91, Какой компилятор? Какие ошибки? Я не телепат.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2010, 00:34
Привет! Вот еще темы с ответами:

наследование - C++
Как наследовать классы с использованием виртуальных функций? Можете привести пример?

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

наследование - C++
помогите пожалуйсто дописать класс многоугольников , и рисовать на монитор с помощью mfc , заранее благодарен... class figure{ public: ...

Наследование в C++ - C++
Прошу помощи, ибо С++ не моё, а лабораторные работы девушке сдавать надо: Создать 1 базовый класс и несколько производных. Все...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
03.12.2010, 00:34
Ответ Создать тему
Опции темы

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