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

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

Восстановить пароль Регистрация
 
goonia91
2 / 2 / 0
Регистрация: 16.10.2009
Сообщений: 65
02.12.2010, 22:54     Наследование #1
Помогите пожалуйста вот с такой задачей:

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

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

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++
C++ наследование
C++ Наследование
Наследование C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tambel
32 / 32 / 2
Регистрация: 10.10.2010
Сообщений: 89
02.12.2010, 23:09     Наследование #2
void Treangle:roc()

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

C++
1
void Treangle::proc()
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 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
Спасибо большое но что-то нечего не работает
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2010, 00:34     Наследование
Еще ссылки по теме:

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

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

Или воспользуйтесь поиском по форуму:
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
03.12.2010, 00:34     Наследование #7
goonia91, Какой компилятор? Какие ошибки? Я не телепат.
Yandex
Объявления
03.12.2010, 00:34     Наследование
Ответ Создать тему
Опции темы

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