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

Создать класс Pair(пара чисел) и класс-наследник Fraction - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Наследование и полиморфизм http://www.cyberforum.ru/cpp-beginners/thread541886.html
Добрый день ребятюни!! Срочно требуется ваша помощь! Программа которая служит для вывода выдающихся учеников и преподов. Если у ученика средний бал больше 3,5 а у препода кол-во публикаций больше...
C++ Не првильно записываются числа с одного масива в другой Условие такое: дан массив W. Записать числа из массива W в новый массив B следующим образом: 1. Четные числа 2. нечетные числа больше ноля 3. нечетные числа меньше ноля Я написал код, но... http://www.cyberforum.ru/cpp-beginners/thread541885.html
Звук в С++ C++
Сразу говорю Работаю в Dev C++ Вопрос можно ли с помощью стандартных библиотек поспроизвести mp3. Если да, то с помощь како библиотеки и как? Если можно пример тоже дайте.
C++ деструктор не может очистить память
Всем привет. Ребят, проблема такая. Есть класс который предназначен для хранения двумерной матрицы. Вот: class intArr{ int** arr; int xSize, ySize; public: ~intArr(); intArr(int x, int...
C++ Однострочный калькулятор http://www.cyberforum.ru/cpp-beginners/thread541860.html
Вроде бы элементарная программа,но появилось затруднение Программа на Си. Обычный калькулятор(+ - / *). Необходимо следующее: вводится строка: 12+2 подтверждение Enter`ом выводится результат:...
C++ Создайте модуль, в котором будет храниться процедура создания следующей картинки. Используя модуль, поместите картинку по углам экрана и в центре. Создайте модуль, в котором будет храниться процедура создания следующей картинки. Используя модуль, поместите картинку по углам экрана и в центре. подробнее

Показать сообщение отдельно
Kuzia domovenok
1948 / 1801 / 137
Регистрация: 25.03.2012
Сообщений: 6,240
Записей в блоге: 1
07.04.2012, 20:52
Цитата Сообщение от soon Посмотреть сообщение
Как уже сказали, нет перегрузки оператора +. Добавьте
C++
1
2
3
4
const fraction operator+ (const fraction& f) const
{
    return fraction(first + f.first, second + f.second);
}
Да это я уже забыл, что перегружал в примере оператор "больше"
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int main (){
  char c;
  fraction f1(2, 3);
  fraction f2(1, 2);
  
  std::cout<<"("<<f1.get_first()<<"/"<<f1.get_second()<<")" ;
  if (f1>f2) std::cout<<">";
  else       std::cout<<"<";
 
  std::cout<<" ("<<f2.get_first()<<"/"<<f2.get_second()<<")"<<std::endl;
  std::cin>>c;
    return 0;    
}
Вот! На этот раз точно работает!

Добавлено через 2 минуты
Цитата Сообщение от soon Посмотреть сообщение
aidoqa, потому, что нет для fraction конструтора с двумя параметрами. Добавьте
C++
1
2
3
4
fraction(const int& f, const int& s): pair(f, s)
{
 
}
Сюда хорошо бы добавить проверку, что знаменатель не равен нулю: для пары чисел это нормально, для дроби - нет


C++
1
2
3
4
5
6
7
fraction(const int& f, const int& s): pair(f, s)
{
if(s==0){
   std::cerr<<"divide by zero";
   second=1;
   }
}
const fraction operator+ (const fraction& f) const
{
return fraction(first + f.first, second + f.second);
}
А если перегружать плюс, то уж пусть корректно работает
C++
1
2
3
4
const fraction operator+ (const fraction& f) const
{
    return fraction(first * f.second +  second * f.first, second * f.second);
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru