Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.67/15: Рейтинг темы: голосов - 15, средняя оценка - 4.67
28 / 20 / 11
Регистрация: 10.02.2016
Сообщений: 237

Перегрузка оператора float()

06.03.2016, 16:43. Показов 3539. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Делаю упражнение на перегрузку оператору *

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
// frengl.cpp
// Дружественная перегружаемая операция +
#include <iostream>
using namespace std;
///////////////////////////////////////////////////////////
class Distance // Класс английских расстояний
{
private:
int feet;
float inches;
public:
Distance() // конструктор без аргументов
{ feet = 0; inches = 0.0; }
Distance(float fltfeet) // конструктор (1 арг.)
{ // Переводит float в Distance
feet = int(fltfeet); // feet - целая часть
inches = 12*(fltfeet - feet);// слева - дюймы
}
Distance(int ft, float in) // конструктор (2 арг.)
{ feet = ft; inches = in; }
void showdist() // Вывести длину
{ cout << feet << "\'-" << inches << '"'; }
friend Distance operator+(Distance, Distance); // дружественный
//operator float(){return float(feet+inches/12);}
};
//---------------------------------------------------------
Distance operator+(Distance d1, Distance d2) // d1 + d2
{
int f = d1.feet + d2.feet; // + футы
float i = d1.inches + d2.inches; // + дюймы
if(i >= 12.0) // если больше 12 дюймов,
{ i -= 12.0; f++; } // уменьшить на 12 дюймов,
// прибавить 1 фут
return Distance(f, i); // Новая длина с суммой
}
//---------------------------------------------------------
int main()
{
Distance d1 = 2.5; // конструктор переводит
Distance d2 = 1.25; // float-feet в Distance
Distance d3;
cout << "\nd1 = "; d1.showdist();
cout << "\nd2 = "; d2.showdist();
d3 = d1 + 10.0; // distance + float: OK
cout << "\nd3 = "; d3.showdist();
d3 = 10.0 + d1; // float + Distance: OK
cout << "\nd3 = "; d3.showdist();
cout << endl;
return 0;
}
хотел перегрузить float(), чтобы проще умножать было, но когда ввёл его, то начались проблемы с 44 строкой, подскажите в чём дело
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
06.03.2016, 16:43
Ответы с готовыми решениями:

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

Перегрузка оператора =
Здравствуйте, возникла проблема при перегрузке оператора. const digit &amp;operator=( const int &amp; ); const digit &amp;operator=(...

Перегрузка оператора
Здравствуйте. Нужна помощь) Есть такой класс: class vect { public: float *items; vect() { items = new float; for(int...

21
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13177 / 6813 / 1821
Регистрация: 18.10.2014
Сообщений: 17,237
06.03.2016, 20:07
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Joey Black Посмотреть сообщение
Вроде понял в чём дело. У компилятора есть два варианта как посчитать сумму:
Ну так а разве компилятор сам вам не сказал именно это открытым текстом прямо в сообщении об ошибке?
0
28 / 20 / 11
Регистрация: 10.02.2016
Сообщений: 237
06.03.2016, 20:09  [ТС]
В книге есть пример про +, упражнение на *

Добавлено через 54 секунды
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Ну так а разве компилятор сам вам не сказал именно это открытым текстом прямо в сообщении об ошибке?
Что-то такое сказал)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.03.2016, 20:09
Помогаю со студенческими работами здесь

Перегрузка оператора []
При перегрузке оператора возникли проблемы, подскажыте как правильно перегрузить этот оператор, чтоб можно было устанавливать и получать...

Перегрузка оператора +
Делаю класс полиномов, которые можно складывать и перемножать. Каждый член полинома есть отдельный класс под названием Term. в классе Term...

Перегрузка оператора
Имеется время, например 12:12:12 Перегрузка инкремента Time &amp;Time::operator ++ () { Next(); return *this; } ...

Перегрузка оператора ++
Написал префиксную перегрузку ++ Vremya &amp;Vremya::operator ++ () { int sec = getSec(*this); //перевод в секунды ...

Перегрузка оператора
Здравствуйте.Появился вопрос: есть две переменные float **m,**m1 как перегрузить оператор = в данном случае?(имею ввиду только первую...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
Новые блоги и статьи
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru