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

Непонятно решение задачи - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Биквадратные уравнения http://www.cyberforum.ru/cpp-beginners/thread625666.html
Помогите написать прогу,которая будет решать биквадратные уравнения,желательно с использованием ООП.
C++ Упорядочить строки матриц в порядке убывания наибольших элементов строк вот такую задачку задали. В С++ Упорядочить строки матриц в порядке убывания наибольших элементов строк. Помогите кто чем может плс!):wall: Добавлено через 47 минут ребята, пожалуйста, срочно нужно.:cry: http://www.cyberforum.ru/cpp-beginners/thread625659.html
C++ Упорядочить элементы массива по убыванию
упорядочить элементы массива по убыванию.......написал программу ....зависает и выключается после ввода массива #include <stdio.h> #include <iostream> #include <conio.h> #include <math.h> using namespace std; int main () { setlocale(LC_ALL,"Russian"); int number;
Как записать целочисленное деление? C++
как записать целочисленное деление?????
C++ Случайная карта из колоды http://www.cyberforum.ru/cpp-beginners/thread625607.html
Решил сделать карточную игру "пьяница". В качестве заготовки пока просто сделать программу которая случайно выбирает из колоды карты(без повторов). Но столкнулся с проблемой, программа очень долго думает. Подскажите какой нибудь более хитрый алгоритм для быстрого сравнения на повторы. Вот код: #include <iostream> using namespace std; int main() { char col; //Колода...
C++ Написать программку по записи числа в обратный и прямой код (с++) программка по записи числа(в любой системе счисления)в обратный и прямой код(с++) подробнее

Показать сообщение отдельно
GoodDay
0 / 0 / 0
Регистрация: 07.04.2012
Сообщений: 24
18.07.2012, 23:59     Непонятно решение задачи
Во общем есть задача по теме классов и преобразование типов, долго думал не мог понять что надо сделать.
Нашел решение, но некоторые моменты не ясны
Сама задача:
Создайте класс sterling, состоящий из фунт типа long, шиллинга типа int, и пенса типа int
Создайте конструктор без аргументов
Конструктор с одним аргументом типа double ( для преобразования от десятичных фунтов)
Конструктор с тремя аргументами
Метод для получения от пользователя значений
Метод вывода полученных значений
Метод сложения sterling+sterling
Метод вычитания sterling-sterling
Метод деления sterling/sterling
Метод деления sterling/double
Метод умножения sterling*double
Листинг программы:
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
#include<iostream>
 
#include<conio.h>
using namespace std;
 class sterling
 {
 private:
     long funt;
     int shilling;
     int pens;
 
 public:
     sterling():funt(0),shilling(0),pens(0) {}
     sterling(double desFunt)
     {
         funt=static_cast<long>(desFunt);
         shilling=static_cast<int>((desFunt - funt)*20);
         pens=static_cast<int>((desFunt - funt)*240-shilling*12);
     }
     sterling (long fu, int sh, int pe):funt(fu),shilling(sh),pens(pe)
     {}
        
 
     operator double ()const//преобразование в тип double
        {
          double temp = (double)(funt + (double)(shilling + (double)pens/12)/20);
          return temp;
        }
     void getSterling()
     {
       char dummychar='.';
       cin>>funt>>dummychar>>shilling>>dummychar>>pens;
     }
 
     void putSterling()
     {
       cout<<"\nОтвет в старых фунтах: "<<funt<<'.'<<shilling<<'.'<<pens;
     }
     sterling operator+(sterling);
     sterling operator-(sterling);
     sterling operator/(sterling);
     sterling operator/(double temp);
     sterling operator*(double temp);
 };
 
 sterling sterling::operator+(sterling sterling2)
 {
     return sterling(double(sterling(funt,shilling,pens))+double(sterling2));
 }
 sterling sterling::operator-(sterling sterling2)
 {
     return sterling(double(sterling(funt,shilling,pens))-double(sterling2));
 }
 sterling sterling::operator/(sterling sterling2)
 {
     return sterling(double(sterling(funt,shilling,pens))/double(sterling2));
 }
 sterling sterling::operator/(double temp)
 {
     return sterling(double(sterling(funt,shilling,pens))/double(temp));
 }
 sterling sterling::operator*(double temp)
 {
     return sterling(double(sterling(funt,shilling,pens))*double(temp));
 }
int main()
{
   setlocale(LC_CTYPE,"Russian");
   sterling sterling1, sterling2, sterling3, sterling4, sterling5, sterling6,sterling7;
   double chis;
 
   cout<<"Введите первую сумму в фунтах, шиллингах и пенсах : ";
   sterling1.getSterling();
    
   cout<<"Введите вторую сумму в фунтах, шиллингах и пенсах : ";
   sterling2.getSterling(); 
 
   sterling1.putSterling();
   sterling2.putSterling();
 
   sterling3=sterling1+ sterling2;
   sterling3.putSterling();
 
   sterling4=sterling1- sterling2;
   sterling4.putSterling();
 
   sterling5=sterling1/sterling2;
   sterling5.putSterling();
 
   cout<<"\nВведите число: ";
   cin>>chis;
 
   sterling6=sterling1/chis;
   sterling6.putSterling();
 
   sterling7=sterling1*chis;
   sterling7.putSterling();
      
    _getch();
    return 0;
}
Непонятен данный фрагмент программы, что здесь происходит?
Понятно что возвращается сумма, используется конструктор стерлинг, но вложенный конструктор и что там делает тип double мне не ясно
C++
1
return sterling(double(sterling(funt,shilling,pens))+double(sterling2));
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 11:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru