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

совмещение ооп и фп в одной программе - C++

Войти
Регистрация
Восстановить пароль
 
asdfghj
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 5
06.10.2011, 05:41     совмещение ооп и фп в одной программе #1
Суть такая. нужно не прибегая к классам сделать функции с одним названием но разным исполнением, в зависимости от типа числа чтобы выбирались разные методы. использовать наследование.

мне объяснили это так.

Add(a,b)
float
complex

num
float num
void numAdd

complex Num
float im
num Add

как это сделать я не знаю, помогите пожалуйста.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
06.10.2011, 05:51     совмещение ооп и фп в одной программе #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
#include <iostream>
 
void f(const char* i)
{
    std::cout << "f(const char*) called\n";
}
 
void f(int i)
{
    std::cout << "f(int) called\n";
}
 
void f(float i)
{
    std::cout << "f(float) called\n";
}
 
void f(double i)
{
    std::cout << "f(double) called\n";
}
 
int main()
{
    f(100.500);
    f("100500");
    f(100500);
    f(100.500f);
    return 0;
}
asdfghj
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 5
06.10.2011, 05:55  [ТС]     совмещение ооп и фп в одной программе #3
а это точно та программа (я не очень силен в программировании). просто не вижу комплексных чисел (и как-то маловато, задание на больше расписано )
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
06.10.2011, 05:57     совмещение ооп и фп в одной программе #4
asdfghj, с комплексными числами сами напишите, там все по аналогии, а эту программу я вам привел для примера
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.10.2011, 06:01     совмещение ооп и фп в одной программе #5
Цитата Сообщение от asdfghj Посмотреть сообщение
совмещение ооп и фп в одной программе
каким ты видишь ФП в С/С++? Поделись с нами. А то я, к примеру, слабо его себе представляю.


Цитата Сообщение от asdfghj Посмотреть сообщение
нужно не прибегая к классам сделать функции ...
Цитата Сообщение от asdfghj Посмотреть сообщение
использовать наследование
Использовать наследование, не прибегая к классам? Интересно.

Цитата Сообщение от asdfghj Посмотреть сообщение
в зависимости от типа числа чтобы выбирались разные методы.
это называется "перегрузка функций", и она в С++ таки есть.
Цитата Сообщение от asdfghj Посмотреть сообщение
Add(a,b)
float
complex
num
float num
void numAdd
complex Num
float im
num Add
что это?

Не по теме:

Кто придумывает такие идиотские задания (или формулировки)?

asdfghj
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 5
06.10.2011, 06:36  [ТС]     совмещение ооп и фп в одной программе #6
надо в одном примере сделать функции с одним названием, но разным исполнением в зависимости от числа.

во второй программе нужно использовать наследование и соответственно классы

Добавлено через 26 минут
эти две программы по идее и есть
Цитата Сообщение от Nameless One Посмотреть сообщение
ФП в С/С++
и ООП там же
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.10.2011, 06:43     совмещение ооп и фп в одной программе #7
Цитата Сообщение от asdfghj Посмотреть сообщение
ФП в С/С++
это не функциональное программирование, а процедурное.
asdfghj
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 5
06.10.2011, 07:40  [ТС]     совмещение ооп и фп в одной программе #8
Цитата Сообщение от Nameless One Посмотреть сообщение
это не функциональное программирование, а процедурное.
Цитата Сообщение от asdfghj Посмотреть сообщение
я не очень силен в программировании


задание дали такое...

Добавлено через 52 минуты
можете такие примеры написать?
Nameless One
Эксперт С++
 Аватар для Nameless One
5759 / 3408 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
06.10.2011, 07:49     совмещение ооп и фп в одной программе #9
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <iostream>
#include <cmath>
 
class complex
{
protected:
    double real;
 
private:
    double imag;        // производные классы не должны знать
                // о мнимой части
 
public:
    complex(double, double);
    complex(const complex&);
 
    complex operator + (const complex&) const;
 
    friend std::ostream& operator << (std::ostream&,
                      const complex&);
};
 
class floating: public complex
{
public:
    floating(double);
    floating(const floating&);
 
    floating operator + (const floating&) const;
 
    operator complex () const;
    
    friend std::ostream& operator << (std::ostream&,
                      const floating&);
};
 
complex operator + (const floating&, const complex&);
 
#define PRINT(EXP) std::cout << #EXP ": " << (EXP) << std::endl
 
int main()
{
    complex c1(2,3), c2(2, -3);
    floating f1(2), f2(-3);
 
    PRINT(c1);
    PRINT(c2);
    PRINT(f1);
    PRINT(f2);
    PRINT(c1 + c2);
    PRINT(f1 + f2);
 
    PRINT(f1 + c2);
    PRINT(c1 + f2);
    
    return 0;
}
 
complex::complex(double r, double i)
    : real(r), imag(i)
{
}
 
complex::complex(const complex& rhs)
    : real(rhs.real), imag(rhs.imag)
{
}
 
complex complex::operator + (const complex& rhs) const
{
    return complex(real + rhs.real, imag + rhs.imag);
}
 
std::ostream& operator << (std::ostream& os,
               const complex& rhs)
{
    bool minus = rhs.imag < 0;
 
    os << rhs.real;
 
    if(rhs.imag != 0)
    os << (minus ? " - " : " + ") << fabs(rhs.imag) << "i";
 
    return os;
}
 
floating::floating(double f)
    : complex(f, 0)
{
}
 
floating::floating(const floating& rhs)
    : complex(rhs.real, 0)
{
}
 
floating floating::operator + (const floating& rhs) const
{
    return floating(real + rhs.real);
}
 
floating::operator complex () const
{
    return complex(real, 0);
}
 
std::ostream& operator << (std::ostream& os,
               const floating& rhs)
{
    return (os << rhs.real);
}
 
complex operator + (const floating& f, const complex& c)
{
    return static_cast<const complex&>(f) + c;
}
Только на самом деле тут тоже происходит перегрузка
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.10.2011, 10:34     совмещение ооп и фп в одной программе
Еще ссылки по теме:

Совмещение стека с <vector> C++
две функции в одной программе C++
C++ Сортировки: пять методов на выбор в одной программе
Объединять классы и внешние функции в одной программе плохой тон программирования? C++
Сделать все задание в одной программе) C++

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

Или воспользуйтесь поиском по форуму:
fasked
Эксперт C++
 Аватар для fasked
4925 / 2505 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
07.10.2011, 10:34     совмещение ооп и фп в одной программе #10
Цитата Сообщение от asdfghj Посмотреть сообщение
не прибегая к классам сделать функции
Цитата Сообщение от asdfghj Посмотреть сообщение
использовать наследование.
Что-что, простите?
Yandex
Объявления
07.10.2011, 10:34     совмещение ооп и фп в одной программе
Ответ Создать тему
Опции темы

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