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

Оператор сравнения - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Агрегированние http://www.cyberforum.ru/cpp-beginners/thread729339.html
Разработать класс SqArrayOfINT - двумерный массив целых чисел. Физически данный массив должен состояить из вектора массивов типа ArrayOfInt Размерность массива задавать в конструкторе. Реализовать метод доступа к элементам массива. Реализовать метод Sum - вычисление суммы чисел в массиве. Метод сортировки массива по возрастанию и по убыванию, метод сравнения двух массивов(==, !=) Метод...
C++ Разработка основы класса Есть такое задание, не могу разобраться. Помогите, пожалуйста. Разработать структуру элементов данных класса в виде динамической структуры данных (динамический массив, список, массив указателей). Разработать: * конструкторы для различных типов входных данных (без параметров, параметр-строка, параметр-массив), конструктор копирования (объект из объекта) и деструктор; * методы вывода и ввода... http://www.cyberforum.ru/cpp-beginners/thread729333.html
C++ Вычислить сумму только отрицательных из 3 чисел
Вычислить сумму только отрицательных из 3 чисел Помогите очень нужна на завтра!
C++ задача по массивам с указателем с++(Поменять местами максимальный элемент каждой строки с первым элементом соответствующей строки)
Задана матрица С(5,5). Поменять местами максимальный элемент каждой строки с первым элементом соответствующей строки
C++ Дано натуральное n. Верно ли, что это число содержит более k одинаковых цифр? http://www.cyberforum.ru/cpp-beginners/thread729318.html
Помогите пожалуйста!!!! Нужно решить задачу на зыке с++, для среды программирования СodeBloks. Дано натуральное n. Верно ли, что это число содержит более k одинаковых цифр?
C++ Даны целые числа a[1],.,a[n]. Найти число различных членов последовательности много мыслей, и все никуда: Даны целые числа a,...,a (в этой последовательности могут быть повторяющиеся члены). Найти число различных членов последовательности. как бы это все упростить до безумия..или вообще по другому сделать.. #include <conio.h> #include <stdio.h> void main () { int n, i, j, a, k=1, buf; подробнее

Показать сообщение отдельно
Noobass
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 100
13.12.2012, 16:00     Оператор сравнения
Надо написать программу, которая переводит фунты в стоуны, используя класс. Класс содержит перегруженные операторы мат. операций (сложение, вычитание и умножение). Также прога должна создать массив объектов класса размером в 6 ячеек, инициализировать 3 из них, и найти минимальный и максимальный элементы. Короче, вот код:
Класс:
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
#ifndef _STONEWT_H_
#define _STONEWT_H_
class Stonewt
{
private:
    int stone;
    double pounds;
    double pds_left;
    char mode;
public:
    Stonewt();
    Stonewt(int n,double lbs,char form='s');
    Stonewt(double lbs,char form='p');
    ~Stonewt();
    void stone_mode();
    void pounds_mode();
    Stonewt operator+(double n) const;
    Stonewt operator*(double n) const;
    Stonewt operator-(double n) const;
    Stonewt operator==(const Stonewt &st) const;
    Stonewt operator<(const Stonewt &st) const;
    friend ostream & operator<<(ostream &os,const Stonewt &st);
};
#endif
Описание методов класса:
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
#include <iostream>
using namespace std;
#include "Stonewt.h"
Stonewt::Stonewt()
{
    stone=0;
    pounds=pds_left=0.0;
    mode='p';
}
Stonewt::Stonewt(double lbs, char form)
{
    stone=int(lbs)/14;
    pds_left=int(lbs)%14+lbs-int(lbs);
    pounds=lbs;
    mode=form;
}
Stonewt::Stonewt(int n, double lbs, char form)
{
    stone=n;
    pds_left=lbs;
    mode=form;
    pounds=stone*14+lbs;
}
Stonewt::~Stonewt()
{
}
void Stonewt::stone_mode()
{
    mode='s';
}
void Stonewt::pounds_mode()
{
    mode='p';
}
Stonewt Stonewt::operator +(double n) const
{
    Stonewt sum;
    sum.pounds=stone*14+pds_left+n;
    sum.stone=sum.pounds/14;
    sum.pds_left=int(sum.pounds)%14+sum.pounds-int(sum.pounds);
    return sum;
}
Stonewt Stonewt::operator -(double n) const
{
    Stonewt diff;
    diff.pounds=(stone*14+pds_left)-n;
    diff.stone=diff.pounds/14;
    diff.pds_left=int(diff.pounds)%14+diff.pounds-int(diff.pounds);
    return diff;
}
Stonewt Stonewt::operator *(double n) const
{
    Stonewt multip;
    multip.pounds=(stone*14+pds_left)*n;
    multip.stone=multip.pounds/14;
    multip.pds_left=int(multip.pounds)%14+multip.pounds-int(multip.pounds);
    return multip;
}
ostream & operator<<(ostream &os,const Stonewt &st)
{
    if(st.mode=='s')
        os<<st.stone<<" stones, "<<st.pds_left<<" pounds.\n";
    if(st.mode=='p')
        os<<st.pounds<<" pounds.\n";
    return os;
}
Stonewt Stonewt::operator ==(const Stonewt &st) const
{
    if(stone>st.stone)
        return *this;
    else
        return st;
    if(stone==st.stone||pounds>st.pounds)
        return *this;
    else
        return st;
}
Stonewt Stonewt::operator<(const Stonewt & st) const
{
    if(stone<st.stone)
        return st;
    else
        return *this;
    if(stone==st.stone||pounds<st.pounds)
        return st;
    else
        return *this;
}
Программа для тестирования класса:
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
#include <iostream>
using namespace std;
#include "Stonewt.h"
const int Size=6;
int main()
{
    Stonewt jackie=Stonewt(250.6,'s');
    Stonewt catie=Stonewt(12,3,'s');
    cout<<"Jackie:\n"<<jackie;
    cout<<"Catie:\n"<<catie;
    Stonewt dave;
    dave=jackie+12;
    cout<<dave;
    dave.stone_mode();
    cout<<"Dave : "<<dave<<"\n";
    dave=jackie*3;
    dave.stone_mode();
    cout<<"Dave : "<<dave<<"\n";
    Stonewt mass[Size]= {
        Stonewt(12,4.6),
        Stonewt(13,2),
        Stonewt(9,9)
    };
    Stonewt temp;
    Stonewt val=Stonewt(1,1);
    for(int i=0;i<Size;i++) {
        temp==mass[i];
        if(val<temp)
            val=temp;
    }
    cout<<"Maximum for mass is "<<val<<"\n";
    system("pause");
    return 0;
}
Жалуется на оператор сравнения, что-то неправильно сделано в условии if... помогите люди добрые, вообще не догадываюсь, как все исправить!!

Добавлено через 20 часов 33 минуты
Можно закрыть тему? Я просто уже разобрался ...
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru