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

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

Войти
Регистрация
Восстановить пароль
 
LexaB
0 / 0 / 0
Регистрация: 31.10.2011
Сообщений: 31
05.12.2012, 23:49     Наследование #1
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
//Создать класс Fraction для работы с дробными десятичными числами.
//Количество цифр в дробной части должно задаваться
//в отедльном поле и инициализироваться конструктором.
//Знак представить полем sign
#include <iostream.h>
#include <windows>
#include <math.hpp>
#include <math.h>
#include <conio>
using namespace std;
class Fraction
{
public:
int celoe,celoe1;
int drobnoe,drobnoe1;
string sign,sign1;
 
double gotovoe,gotovoe1;
void Fraction::priem(int, int, char);
void Fraction::priem1(int, int, char);
double Fraction::preobrazovanie();
double Fraction::preobrazovanie1();
double Fraction::preobrazovanieznaka() ;
double Fraction::preobrazovanieznaka1() ;
}
;
void Fraction::priem(int, int, char)
{cout<<"Введите целую часть 1 числа-> ";cin>>celoe;
cout<<"Введите дробную часть 1 числа-> ";cin>>drobnoe;
cout<<"Введите знак 1 числа-> ";cin>>sign;
}
 
void Fraction::priem1(int, int, char)
{cout<<"Введите целую часть 2 числа-> ";cin>>celoe1;
cout<<"Введите дробную часть 2 числа-> ";cin>>drobnoe1;
cout<<"Введите знак 2 числа-> ";cin>>sign1;
}
 
double Fraction::preobrazovanie()
{
if (drobnoe>0) {
int digitCount = Log10(drobnoe) + 1;
gotovoe=celoe+drobnoe*pow(0.1,digitCount); }
else gotovoe=celoe;
 
return gotovoe;
}
 
double Fraction::preobrazovanie1()
{
if (drobnoe1>0) {
int digitCount = Log10(drobnoe1) + 1;
gotovoe1=celoe1+drobnoe1*pow(0.1,digitCount); }
else gotovoe1=celoe1;
 
return gotovoe1;
}
 
 
double Fraction::preobrazovanieznaka()
 
{string s="+";
if (sign==s) gotovoe=gotovoe;
else gotovoe=gotovoe*(-1);
cout<<"Число 1 -> "<<gotovoe<<endl;
 
return gotovoe;
}
 
double Fraction::preobrazovanieznaka1()
 
{string s="+";
if (sign1==s) gotovoe1=gotovoe1;
else gotovoe1=gotovoe1*(-1);
cout<<"Число 2-> "<<gotovoe1<<endl;
 
return gotovoe1;
}
 
class operacii:public Fraction
{public: double otvet;
operacii::umnozhenie();
}  ;
operacii::umnozhenie()
{
otvet=gotovoe*gotovoe1;
cout<<otvet<<endl;
}
 
void main()
 
{SetConsoleOutputCP(1251) ;
SetConsoleCP(1251);
setlocale(LC_ALL, "Russian");
Fraction obect;
obect.priem(0,0,0);
obect.priem1(0,0,0);
obect.preobrazovanie();
obect.preobrazovanie1();
obect.preobrazovanieznaka();
obect.preobrazovanieznaka1();
operacii ob;
ob.umnozhenie();
getch() ;
}
Такой вопрос, создаю класс наследник умножение(для умножения созданных чисел), в итоге выводится 0. Думаю проблема в приеме значений переменных, или в том что создается объект. Что посоветуете???

Добавлено через 10 минут
Дошло, надо объект создавать от класса наследника)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.12.2012, 23:49     Наследование
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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