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

Приведение пользовательских типов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ошибка в классе http://www.cyberforum.ru/cpp-beginners/thread1097072.html
Доброго времени суток! Недавно прочитал тему классы, посмотрел и инете видео-урок и решил закрепить материал созданием класса. Films.h #pragma once namespace films{ class Films {...
C++ Программа позволяющая выводить информацию о системе Помогите написать программу которая выводит: Системные цвета (15-28), системye. информацию, директорию Windows. P.S(15-28)- информация в приложенном здесь изображении. Буду весьма благодарен за... http://www.cyberforum.ru/cpp-beginners/thread1097065.html
C++ Переменные на русском языке - хорошо или плохо?
в mvs 2012 заметил возможность в проектах c++ переменным, функциям, классам давать русско-буквенные имена. как вы относитесь к использование такой фичи, если предполагается, что код не будет...
В двумерном массиве, по столбцам найти отрицательные значения и написать их в вектор C++
Подскажите пожалуйста как сделать следующее: В двумерном массиве, по столбцам найти отрицательные значения и написать их в вектор, и если в каком то из столбцов нет отрицательного в векторе записать...
C++ поиск предложения с определённым количеством слов C++ http://www.cyberforum.ru/cpp-beginners/thread1097019.html
Здравствуйте! Есть задачка, нужно найти предложения с определённым количеством слов в строке. Помогите пожалуйста, заранее спасибо)
C++ простая задачка с циклами Помогите со 2 задачей, ну или придумуйте свое подобное подробнее

Показать сообщение отдельно
0x10
2475 / 1648 / 247
Регистрация: 24.11.2012
Сообщений: 4,070
15.02.2014, 13:12
У вас уже есть конструктор, который может быть вызван с одним аргументом типа int, поэтому int может быть неявно приведен к cl:
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
#include <iostream>
 
class cl
{
public:
    cl(int d = 0, int c = 0)
    {
        dollars = d;
        cents = c;
        dollars += cents / 100;
        cents %= 100;
    }
    unsigned int dollars;
    unsigned int cents;
};
 
cl operator+(const cl& s1, const cl& s2)
{
    cl object(0, 0);
    object.cents   = s1.cents + s2.cents;
    object.dollars = s1.dollars + s2.dollars;
    return object;
}
 
int main()
{
    cl s1(0, 5);
 
    cl d = s1 + 50;
 
    std::cout << d.dollars << '.' << d.cents << std::endl;
 
    return 0;
}
Добавлено через 2 минуты
Обратить внимание нужно на несколько вещей:
1. Из класса было убрано объявление несуществующей дружественной функции.
2. В операторе+ аргументы передаются по константным ссылкам.
3. В конструкторе был убран цикл.
4. В текущей версии после сложения количество центов может оказаться больше 100 - не забудьте поправить.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru