С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
straus
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 45
1

производные класса

13.03.2011, 22:01. Просмотров 407. Ответов 5
Метки нет (Все метки)

создать класс фигура с производными классами квадрат, треугольник , круг, которые вычисляют площадь и периметр... не особо понимаю -начал писать, но столько ошибок выходит!
Класс Figure.h , Circle.h , main .cpp.... так или нет? в h описание , а запуск в main ? помогите разобраться с одним видом хотя бы... пож!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2011, 22:01
Ответы с готовыми решениями:

Поместить в динамически расширяемый массив объекты класса, производные от базового абстрактного класса
Помогите пожалуйста новичку! (мне). Я хочу создать динамически расширяющийся...

Реализовать классы Ромб и Квадрат, производные от класса Фигура
Создать классы ромб и квадрат, производные от класса фигура. Определить...

производные
для многочлена Pn(x) получить его производную Pn'(x) и пощитать значение...

Производные
Привет всем! У меня такая проблема: надо написать программку, которая бы...

Производные(похідні)
x^4+x^2+1 Как эту функцию решить в с++? покажите примером. Или там как то спец...

5
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
13.03.2011, 22:17 2
Покажите код.
0
straus
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 45
13.03.2011, 22:35  [ТС] 3
silent_1991,
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
// 12.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
 
 
#include <stdio.h>     
 
class FIGURE
{
public:
  
    virtual double area( void )
    {
        return 0;
    }
    
   /* virtual void print( void )
    {
        printf( "\nPloshad fuguri = %g", area( ) );
        //printf( "\n Square of a figure area1( 5.0f ) = %g",
               // area1( 5.0f ) );
        return;
    }*/
};
 
class CIRCLE : public FIGURE
{
    
private:
    double     radius;   
    public:
        CIRCLE ( double rad )
    {
        radius = rad;
    }
   
    virtual double area( void )
    {
        return 3.14 * radius * radius;
    }
 
    virtual void print( void )
    {
        printf( "\n Ploshad kruga area( ) = %g",
                area( ) );
     
        return;
    }
};
int main( void )        
{
    
    CIRCLE     circl( 2.0 );
    
    circl.print( );
        FIGURE     *pfigure = new CIRCLE( 1.0 );
    
    pfigure->print( );
    
        //pfigure->FIGURE :: print( );
        delete pfigure;
    printf( "\n" );
    return 0;
}
без virtual никак ? и нам сказали разбить на классы h. и cpp -это возможно?
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
13.03.2011, 22:45 4
Я бы вот так сделал:

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
#include <stdio.h>     
 
class FIGURE
{
public:
  
    virtual double area() = 0;
    virtual void print() = 0;
};
 
class CIRCLE : public FIGURE
{
    
private:
    double     radius;   
    public:
        CIRCLE ( double rad )
    {
        radius = rad;
    }
   
    virtual double area( void )
    {
        return 3.14 * radius * radius;
    }
 
    virtual void print( void )
    {
        printf( "\n Ploshad kruga area( ) = %g",
                area( ) );
     
        return;
    }
};
int main( void )        
{
    
    CIRCLE     circl( 2.0 );
    
        circl.print( );
        FIGURE     *pfigure = new CIRCLE( 1.0 );
    
        pfigure->print( );
    
        //pfigure->FIGURE :: print( );
        delete pfigure;
    printf( "\n" );
    return 0;
}
Добавлено через 26 секунд
Разумеется, можно, и даже нужно, разбить класс на заголовок и описание.
0
straus
0 / 0 / 0
Регистрация: 18.10.2010
Сообщений: 45
13.03.2011, 23:10  [ТС] 5
silent_1991, можно еще вопрос написал для треугольника площадь, по формуле герона
C++
1
2
3
4
 virtual double area( void )
    {
        return  float (1/4)*sqrt((a+b+c)*(b+c-a)*(a+c-b)*(a+b-c));
    }
выводит мне -1.#IND
не понимаю с чем это связано
0
silent_1991
Эксперт С++
5011 / 3071 / 271
Регистрация: 11.11.2009
Сообщений: 7,045
Завершенные тесты: 1
13.03.2011, 23:17 6
C++
1
2
3
4
virtual double area( void )
{
    return 1.0 / 4.0 * sqrt((a+b+c)*(b+c-a)*(a+c-b)*(a+b-c));
}
Добавлено через 1 минуту
А, ну и ещё может быть связано с тем, что треугольник, вами введённый, вообще не существует. Есть такая штука - неравенство треугольника, которое гласит, что ни одна сторона треугольника не может превышать сумму двух других его сторон. Если такое происходит, то произведение под знаком корня будет отрицательным, а арифметического квадратного корня из отрицательного числа на вещественной прямой не найти.
1
13.03.2011, 23:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2011, 23:17

производные классы
Задание: Разработайте программу на языке С++, использующую наследование....

производные классы.
Попалось такое Задание: Написать программу используя базовый и производный...

Производные классы
Всем доброго времени суток! Столкнулся со следующей проблемой: в main создается...


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

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

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