Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вывести на экран слова, в которых каждая буква слова входит не менее двух раз Дана последовательность, которая должна вмещать от 2 до 50 слов, в каждом слове от 2 до 8 символом. Написать программу, которая будет выводить на экран слова, в которые каждая буква этого слова... https://www.cyberforum.ru/ cpp-beginners/ thread1680984.html Программа не заканчивает работу C++
Программа нечего не выдает и не заканчивает работу#include <iostream> #include <cstdlib> #include <ctime> #include <string> using namespace std; class Generator{ public: int...
C++ Компилировать и объяснить код, получающий двоичный дамп программы Нашёл в книжке таких 2 примера: #include <cstring> #include <iostream> #define legal_psw "my.good.password" int main() { char user_psw; https://www.cyberforum.ru/ cpp-beginners/ thread1680980.html C++ Иероглифы вместо русских букв https://www.cyberforum.ru/ cpp-beginners/ thread1680977.html
Здравствуйте, есть программа которая читает с блокнота строку и копирует ее в буфер обмена. Проблема в том, что стоит русская раскладка клавиатуры то все нормально, но если включить анг раскладку ...
Вычислить выражение рекурсивно и итеративно C++
Помогите записать пример. Решить задачу на фото двумя способами - с применением рекурсии и без неё. y(n)=\sqrt{1+\sqrt{2+...+\sqrt{n}}}
C++ что не так Void func Строковые литералы типа const char Строковые литералы теперь имеют тип const char и размещаются в области памяти, предназначенной только для чтения. Изменение этой памяти теперь будет вызывать... https://www.cyberforum.ru/ cpp-beginners/ thread1680964.html
C++ Посоветуйте хорошую книгу по c++ с задачами https://www.cyberforum.ru/ cpp-beginners/ thread1680959.html
Посоветуйте хорошую книгу по c++ с задачами, и подскажите какие темы нужно знать junior'у чтобы устроиться на работу, смотрел вакансии в Москве но требования там просто нереальные, может посмотреть...
Вывести на экран строки длиной больше 5 и меньше 20 символов из контейнера multiset<string> C++
Здравствуйте, у меня такой вопрос, например существует контейнер multiset<string>, как можно вывести на экран строки длиной больше 5 и меньше 20?
C++ Ищу бесплатную библиотеку для захвата видео с экрана https://www.cyberforum.ru/ cpp-beginners/ thread1680941.html
Здравствуйте, подскажите пожалуйста, есть ли бесплатная библиотека для захвата видео с экрана ?
C++ Двоичный поиск по полю средний бал Надо найти запись у которого средний бал 3.2 вот код к которому надо применить двоичный поиск, можно сделать не через функции #include <iostream> #include <windows.h> #include <cstdlib> using... https://www.cyberforum.ru/ cpp-beginners/ thread1680930.html
Найти количество неотрицательных элементов побочной диагонали заданной квадратной матрицы C++
Найти количество неотрицательных элементов побочной диагонали матрицы А(6,6).
C++ Ввести целочисленный массив 4х4 и определить максимальное среди элементов массива https://www.cyberforum.ru/ cpp-beginners/ thread1680927.html
Ввести целочисленный массив 4х4 и определить максимальное среди элементов массива.
15349 / 8297 / 2014
Регистрация: 30.01.2014
Сообщений: 14,167
09.03.2016, 21:30 0

Преобразование из одного класса в другой - C++ - Ответ 8859450

09.03.2016, 21:30. Показов 2664. Ответов 7
Метки (Все метки)

Ответ

Цитата Сообщение от meJevin Посмотреть сообщение
как мне заставить эту программу работать
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <iomanip>
#include <limits>
 
template<typename Type>
void cinNum(Type& var, char const * text) {
 
    int intLimit = std::numeric_limits<int>::max();
 
    std::cout << text;
    while (!(std::cin >> var) || (std::cin.peek() != '\n')) {
        std::cin.clear();
        std::cin.ignore(intLimit, '\n');
        std::cout << text;
    }
 
}
 
class USmoney;
 
class RUSmoney {
private:
    unsigned int rubles;
    unsigned int kopeks;
 
public:
    RUSmoney(unsigned int rubles = 0, unsigned int kopeks = 0)
        : rubles(rubles), kopeks(kopeks)
    {
    }
 
    void print() {
        std::cout << "Your RUS money: ";
        std::cout << rubles << " Rubles, " << kopeks << " Kopeks\n\n";
    }
 
    operator USmoney() const;
};
 
class USmoney {
private:
    unsigned int dollars;
    unsigned int cents;
 
public:
    USmoney(unsigned int dollars = 0, unsigned int cents = 0)
        : dollars(dollars), cents(cents)
    { }
 
    void print() {
        std::cout << "Your US money: ";
        std::cout << dollars << " Dollars, " << cents << " Cents\n\n";
    }
 
    operator RUSmoney() const;
};
 
RUSmoney::operator USmoney() const {
    unsigned int dollars = 0;
    unsigned int cents = (rubles * 1.4) + (kopeks * 0.014);
 
    while (cents >= 100) {
        cents -= 100;
        dollars += 1;
    }
 
    return USmoney(dollars, cents);
}
 
USmoney::operator RUSmoney() const {
    unsigned int rubles = 0;
    unsigned int kopeks = (dollars * 7100) + (cents * 71);
 
    while (kopeks >= 100) {
        kopeks -= 100;
        rubles += 1;
    }
 
    return RUSmoney(rubles, kopeks);
}
 
int main() {
 
    setlocale(LC_ALL, "RUSSIAN");
 
    unsigned int dollars, cents;
    unsigned int rubles, kopeks;
 
    cinNum(dollars, "Enter dollars: ");
    cinNum(cents, "Enter cents: ");
    cinNum(rubles, "Enter rubles: ");
    cinNum(kopeks, "Enter kopeks: ");
 
    USmoney moneyUS(dollars, cents);
    USmoney moneyUS_temp(dollars, cents);
    RUSmoney moneyRUS(rubles, kopeks);
 
    moneyUS.print();
    moneyRUS.print();
 
    std::cout << "US currency converted to RUS currency\n";
    moneyUS = moneyRUS;
    moneyUS.print();
    std::cout << "RUS currency converted to US currency\n";
    moneyRUS = moneyUS_temp;
    moneyRUS.print();
 
    return 0;
}

+ убрал бессмысленные проверки на отрицательные значения у unsigned переменных, заменил присваивание на инициализацию в конструкторе (приучаться к правильному нужно сразу) и добавил const к функциям преобразования типов - т.к. они не меняют состояние объекта.

Вернуться к обсуждению:
Преобразование из одного класса в другой C++
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2016, 21:30
Готовые ответы и решения:

Передать данные одного обьекта класса в другой обьект на другой форме
Здравствуйте прочитал вот это https://www.cyberforum.ru/windows-forms/thread110436.html но так и...

Есть два класса. Как из одного класса перенести данные в другой класс?
Есть два класса : планета и диспетчер планет. Диспетчер имеет информацию о планетах: их названия,...

Как передать входящее значение одного метода класса на возврат в другой метод того же класса?
Я самый новейший новичок. Помогите.Как передать входящее значение (количество еды) метода feed...

Преобразование одного типа в другой
Привет. Проходил тему про преобразования одного типа в другой например это: static void Main()...

7
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2016, 21:30

Преобразование из одного типа в другой
подскажите пожалуйста как преобразовать из tprotocolversion в string?)

Преобразование массива из одного типа в другой
Дан массив из 50 строк string line Как преобразовать его к типу инт

Преобразование массива одного типа в другой
Есть массив int-овых чисел. Нужно его перевести в массив double. Поэлементно с помощью цикла очень...

Преобразование одного массива данных в другой
Как сделать преобразование одного массива данных в CSV файлах? Пример считываем 12 столбец файла (в...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru