Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
387 / 294 / 21
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 1
1

Приведение типов?

04.11.2011, 20:32. Показов 3658. Ответов 27
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите, пожалуйста что происходит. Не понимаю почему такой код работает.
.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Km
{
private:
        static const double DIFFERENCE = 1.2;
        double kilometer;
        double mili;
 
public:
...
       friend void operator+=(Km & k, const Km & t); //<--
...
       
       friend std::ostream & operator<<(std::ostream & os, const Km & t);
};
.cpp
C++
1
2
3
4
5
6
7
...
     void operator+=(Km & k, const Km & t)
     {
            k.kilometer=k.kilometer-t.kilometer;
            k.mili=k.mili-t.kilometer;
     }
...
main
C++
1
2
3
4
5
6
7
8
9
10
...
    Km mili=50;
    Km km=20;
    
    km+=mili;                 //Вот тут все понятно
    cout << endl << km; 
    
    km+=10;   //А вот тут не понятно, у меня мысли только о автоматическом приведении типов
    cout << endl << km; 
...
Зарание спасибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2011, 20:32
Ответы с готовыми решениями:

Приведение типов
Есть ли какая-нибудь разница в следующих выражениях: float a = 123.4f и float a =...

Приведение типов
в GUI ни int str = static_convert&lt;int&gt;(Edit1-&gt;Text) ни int str = (int)Edit1-&gt;Text не...

Приведение типов.
Столкнулся с задачей считывания данных из символьного массива с дальнейшим отбором из всего этого...

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

27
387 / 294 / 21
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 1
04.11.2011, 23:46  [ТС] 21
Author24 — интернет-сервис помощи студентам
PraZuBeR,
Миниатюры
Приведение типов?  
1
Chelioss
04.11.2011, 23:50
  #22

Не по теме:

KeyGen
Что за книга?

0
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
04.11.2011, 23:52 23
KeyGen, это пруф того, что я прав?

Последнее предложение, в конце страницы:
Однако подобным образом невозможно хранить константу типа double.
1
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
04.11.2011, 23:53 24
Цитата Сообщение от PraZuBeR Посмотреть сообщение
Однако подобным образом невозможно хранить константу типа double.
Почему int можно, а double нет? Странно все это.
0
387 / 294 / 21
Регистрация: 07.08.2011
Сообщений: 790
Записей в блоге: 1
04.11.2011, 23:57  [ТС] 25
PraZuBeR, Но работает же...
0
114 / 114 / 13
Регистрация: 29.04.2010
Сообщений: 240
05.11.2011, 00:00 26
Chelioss, потому что static const члены считаются на этапе компиляции. Компилятор не может высчитывать вещественные числа. Кстати, именно static const, наравне с enum, широко используются в метапрограмировании на C++.

KeyGen, какой компилятор вы используете?
1
237 / 210 / 29
Регистрация: 08.06.2011
Сообщений: 467
05.11.2011, 00:07 27
Цитата Сообщение от PraZuBeR Посмотреть сообщение
static const члены считаются на этапе компиляции.
Под них даже память не выделяется (если нигде не берется адрес), значения просто подставляются в места использования.
0
186 / 186 / 21
Регистрация: 08.01.2011
Сообщений: 1,139
05.11.2011, 00:11 28
Цитата Сообщение от PraZuBeR Посмотреть сообщение
Компилятор не может высчитывать вещественные числа.
Цитата Сообщение от Net_Wanderer Посмотреть сообщение
Под них даже память не выделяется, значения просто подставляются в места использования.
Понятно. Хотя странно, ведь если они просто подставляются, то значит они как-то компилятором вычитались.
0
05.11.2011, 00:11
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.11.2011, 00:11
Помогаю со студенческими работами здесь

Приведение типов
Доброго времени суток. Пусть имеются две структуры struct Student { string FirstName;...

Приведение типов
Как привести наследника ко второму родителю? class Parent1 { public: int a; int b; ...

Приведение типов
Всем привет) Есть массив int a = {2 ,4 ,5 ,6 ,256} Числа располагаются по байтам в памяти так:...

Приведение типов
Делаю программу, которая кроме всего прочего должна отсортировать массив. Использую для этого...


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

Или воспользуйтесь поиском по форуму:
28
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru