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

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

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

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

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

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

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

Производные - C++
Привет всем! У меня такая проблема: надо написать программку, которая бы выдала вид прозводной, например, на вход подается f=y*x-2*y^2,...

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

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

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

производные классы - C++
Задание: Разработайте программу на языке С++, использующую наследование. Вариант 18. Создайте базовый класс Complex (комплексное число)...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 1
13.03.2011, 22:17     производные класса #2
Покажите код.
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 -это возможно?
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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 секунд
Разумеется, можно, и даже нужно, разбить класс на заголовок и описание.
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
не понимаю с чем это связано
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.03.2011, 23:17     производные класса
Еще ссылки по теме:

Частные производные - C++
Ув. експерты. ТАкое дело, у меня в программке нужно вычислить коэффециенты по формуле на картинке. А как это сделать даже не представляю. ...

Создать производные классы - C++
Создать производные классы со своими методами вывода информации на экран (абстрактного класса Библиотека). Производные классы: 1....

Массив указателей на производные классы - C++
Здравствуйте, есть базовый класс строка mystring class mystring // Опишем базовый класс строки { protected: char *p; ...

Производные классы паблик и приват - C++
Здравствуйте, нужна помощь. Это пример из книги Лафоре ООП С++. Не могу понять почему программа работает, хотя при наследовании классы...


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

Или воспользуйтесь поиском по форуму:
silent_1991
Эксперт С++
4960 / 3036 / 149
Регистрация: 11.11.2009
Сообщений: 7,027
Завершенные тесты: 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 минуту
А, ну и ещё может быть связано с тем, что треугольник, вами введённый, вообще не существует. Есть такая штука - неравенство треугольника, которое гласит, что ни одна сторона треугольника не может превышать сумму двух других его сторон. Если такое происходит, то произведение под знаком корня будет отрицательным, а арифметического квадратного корня из отрицательного числа на вещественной прямой не найти.
Yandex
Объявления
13.03.2011, 23:17     производные класса
Ответ Создать тему
Опции темы

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