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

Создать файл для определения класса рациональных чисел с перегрузкой операторов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Если в матрице есть нули, то заменить их суммой max и min последнего столбца. Использовать функции http://www.cyberforum.ru/cpp-beginners/thread1124282.html
Дана матрица порядка n. Найти в последнем столбце max и min. Если в матрице есть нули, то заменить их суммой max и min последнего столбца.
C++ Определить время выполнения потоков Здравствуйте. У меня программно задаются N потоков, которые производят вычисления. В конце необходимо вывести время работы каждого потока. Пользуюсь следующим кодом: for(cur2=inf.begin();cur2!=inf.end();cur2++){ cout<<"Поток, имеющий id="<<cur2->first<<" решил "<<cur2->second<<" задач и затратил "; FILETIME ftKernelTimeEnd,ftUserTimeEnd,ftDummy; _int64 qwKernelTimeElapsed,... http://www.cyberforum.ru/cpp-beginners/thread1124275.html
C++/CLI WinForms Дополнение к калькулятору - бесконечное число аргументов
Собственно написал калькулятор(простой) , единственное что нужно реализовать - это бесконечное число аргументов. Как это сделать? Что дописать? Что изменить? #pragma once namespace jonjohnson { using namespace System; using namespace System::ComponentModel; using namespace System::Collections;
C++ #define sqr(a) (a)*(a) - зачем так много скобок?
#define sqr(a) ((a)*(a)) такие вопросы: 1) Зачем ((a)*(a)) так много скобок? (если можно,объяснить доступным языком) 2) почему, если их убрать - то будет неправильно? 3) как работает этот #define ?
C++ Определить, принадлежит ли точка кольцу, определяемому окружностями http://www.cyberforum.ru/cpp-beginners/thread1124262.html
Вот сама задача: Определить, принадлежит ли точка А(а1, а2) кольцу, определяемому окружностями: x2 + y2 = 1 и x2 + y2 = 16. С чего можно было начать?
C++ Посоветуйте хороший компилятор Посоветуйте хороший компилятор для С,который был бы просто в применении,так как я только начинаю программировать. подробнее

Показать сообщение отдельно
Skedaddler
1 / 1 / 1
Регистрация: 24.02.2014
Сообщений: 13
19.03.2014, 20:37     Создать файл для определения класса рациональных чисел с перегрузкой операторов
Добрый день. Нужно создать файл для определения класса рациональных чисел с перегрузкой операторов. Ввиду своей криворукости имею множество вопросов.
Вот код (простите за кривость и недоделанность)
Кликните здесь для просмотра всего текста

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
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#ifndef _RATIO_H_
#define _RATIO_H_
 
class Ratio
{   
    int num; // Числитель
    int den; // Знаменатель
    friend ostream& operator <<(ostream& outs, const Ratio&); // Перегрузка ввода
    friend istream& operator >>(istream& ins, const Ratio&);  // Перегрузка вывода
    int invert (int, int); // Меняет местами числитель и знаменатель
    int gcd (int, int); // Находит наибольший общий делитель
    int reduce (int, int, int); // Сокращает дробь
    explicit Ratio.den = 0; 
public:
    Ratio () {num = 0; den = 1;};
    Ratio operator* (const Ratio&x) const; // Оператор умножения дробей
    Ratio operator/ (const Ratio&x) const; // Оператор деления дробей
    Ratio operator= (const Ratio &src); // Присваивание
    Ratio operator*= (const Ratio&x) const; // Умножение
    Ratio operator/= (const Ratio&x) const; // Деление
    Ratio operator== (const Ratio&x, const Ratio&y); // Эквивалентность
    Ratio operator!= (const Ratio&x, const Ratio&y); // Не тождественность
    Ratio operator int() const; // Целые числа
    Ratio operator double() const; // Числа с плавающей запятой
    void Ratio.show();  // Вывод
    ~Ratio() {}; // Деструктор  
}
#endif
 
Ratio& operator* (const Ratio&x) const // Оператор умножения дробей
{
    Ratio result (num * x.num, den * x.den); // (a/b)*(c/d)=(ac/bd)
    return result;
}
 
Ratio& operator/ (const Ratio&x) const //Оператор деления дробей
{
    Ratio result (den * x.num, num * x.den); // (a/b)/(c/d)=(a/b)*(d/c)=(ad/bc)
    return result;
}
 
Ratio& operator= (const Ratio &src) // Присваивание
{
    if(&src == this) return *this;
    num = src.num;
    den = src.den;
    return *this;
}
 
Ratio& operator*= (const Ratio&x) const // Умножение
{
    num *= x.num;
    den *= x.den;
    return *this;
}
 
Ratio& operator/= (const Ratio&x) const // Деление
{
    num /= x.num;
    den /= x.den;
    return *this;
}
 
Ratio& operator== (const Raito&x, const Ratio&y) // Эквивалентность
{
    return ((num == x.num) && (den = x.den));
}
 
Ratio& operator!= (const Ratio&x, const Ratio&y) // Не тождественность
{
    ///
}
    
Ratio& operator int() const // Целые числа
{
    return int(num)/den;
}
 
Ratio& operator double() const // Числа с плавающей запятой
{
    return double(num)/den;
}
 
void Ratio.show() // Вывод
{
    cout<<num<<"/"<<den<<endl;
}
 
int invert (int, int) // Меняет местами числитель и знаменатель
{
    int temp = num;
    num = den;
    den = temp;
}

Ошибки следующие:
  • "IntelliSense: variable "Ratio" is not a type name" практически для каждого оператора.
  • "IntelliSense: nonmember operator requires a parameter with class or enum type"
  • "IntelliSense: identifier "Raito" is undefined"
  • "IntelliSense: expected a declaration" также почти для каждого оператора.
  • "IntelliSense: a type qualifier is not allowed on a nonmember function " то же самое.
Буду благодарен не за написанный код, а за полезные советы и тыканье носом в элементарные ошибки. Задача-то простейшая, даже обидно, что возникли такие сложности.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru