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

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

Восстановить пароль Регистрация
 
Elena_1795
0 / 0 / 0
Регистрация: 30.05.2013
Сообщений: 40
09.11.2013, 13:51     Создать класс Pair (пара чисел) #1
Создать класс Pair (пара чисел). Пара должна быть представлено двумя полями: типа int для первого числа и типа double для второго. Первое число при выводе на экран должн о быть отделено от второго числа двоеточием. Реализовать:
 операции сравнения (<, >).
 операция ++, которая работает следующим образом: если форма операции префиксная, то увеличивается первое число, если форма операции постфиксная, то увеличивается второе число.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.11.2013, 13:51     Создать класс Pair (пара чисел)
Посмотрите здесь:

C++ создать класс pair (пара чисел); определить метод перемножения полей и операцию сложения пар
Создать класс Pair(пара чисел) и класс-наследник Fraction C++
C++ Создать класс Pair (пара чисел); определить методы изменения полей и вычисления произведения чисел.
Создать класс Triad (тройка чисел); определить методы изменения полей и вычисления суммы чисел. C++
C++ Что такое многоразрядное число? (Создать класс ПАРА целых чисел)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
09.11.2013, 17:59     Создать класс Pair (пара чисел) #2
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
#include <iostream>
 
class Pair 
{
private:
    int    _a;
    double _b;
 
public:
    Pair() 
        : _a(0), _b(0) { }
 
    Pair(int a, double b)
        : _a(a), _b(b) { }
 
    ~Pair() { }
    ////////////////////////////////////////////////////////////////
    Pair& operator++ () { _a++;
        return *this;
    }
    Pair& operator++ (int) { Pair res(*this); _b += 1.0;
        return res;
    }
 
    friend bool operator < (const Pair&, const Pair&); 
    friend bool operator > (const Pair&, const Pair&);
 
    friend std::ostream& operator<< (std::ostream&, const Pair&);
};
 
bool operator < (const Pair& lhs, const Pair& rhs) {
    return (lhs._a < rhs._a) && (lhs._b < lhs._b);
}
bool operator > (const Pair& lhs, const Pair& rhs) {
    return (!(lhs < rhs));
}
 
std::ostream& operator<< (std::ostream& ost, const Pair& obj) {
    return (ost << obj._a << " : " << obj._b);
}
 
// --- main --- 
 
int main()
{
    Pair p(4, 4.50);
    std::cout << "P   -> " << p << "\n\n";
 
    ++p; std::cout << "++P -> " << p << std::endl;
    p++; std::cout << "P++ -> " << p << std::endl;
 
    std::cout << std::endl;
 
    Pair p2;
    std::cout << "P2  -> " << p2 << "\n\n";
 
    if (p > p2)
        std::cout << "P > P2 \n";
    else
        std::cout << "P < P2 \n";
 
    system("PAUSE");
    return 0;
}
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
09.11.2013, 18:05     Создать класс Pair (пара чисел) #3
Issues, 22 строка, возвращаете ссылку на локальный объект. И вообще не понятно зачем он вам нужен.

Добавлено через 1 минуту
Да, и 35 строка, отрицание не совсем верно, ибо таким образом у вас получается >=, а не >
Issues
429 / 364 / 37
Регистрация: 06.08.2012
Сообщений: 961
09.11.2013, 18:18     Создать класс Pair (пара чисел) #4
anmartex, спасибо. Исправил:
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
#include <iostream>
 
class Pair 
{
private:
    int    _a;
    double _b;
 
public:
    Pair() 
        : _a(0), _b(0) { }
 
    Pair(int a, double b)
        : _a(a), _b(b) { }
 
    ~Pair() { }
    ////////////////////////////////////////////////////////////////
    Pair& operator++ () { ++_a;
        return *this;
    }
    Pair& operator++ (int) { _b += 1.0;
        return *this;
    }
 
    friend bool operator < (const Pair&, const Pair&); 
    friend bool operator > (const Pair&, const Pair&);
 
    friend std::ostream& operator<< (std::ostream&, const Pair&);
};
 
bool operator < (const Pair& lhs, const Pair& rhs) {
    return (lhs._a < rhs._a) && (lhs._b < lhs._b);
}
bool operator > (const Pair& lhs, const Pair& rhs) {
     return (lhs._a > rhs._a) && (lhs._b > lhs._b);
}
 
std::ostream& operator<< (std::ostream& ost, const Pair& obj) {
    return (ost << obj._a << " : " << obj._b);
}
 
// --- main --- 
 
int main()
{
    Pair p(4, 4.50);
    std::cout << "P   -> " << p << "\n\n";
 
    ++p; std::cout << "++P -> " << p << std::endl;
    p++; std::cout << "P++ -> " << p << std::endl;
 
    std::cout << std::endl;
 
    Pair p2;
    std::cout << "P2  -> " << p2 << "\n\n";
 
    if (p > p2)
        std::cout << "P > P2 \n";
    else
        std::cout << "P < P2 \n";
 
    system("PAUSE");
    return 0;
}
Yandex
Объявления
09.11.2013, 18:18     Создать класс Pair (пара чисел)
Ответ Создать тему
Опции темы

Текущее время: 15:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru