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

Сортировка элементов масива обьектов через перегруженный оператор - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Очередь с двусторонним доступом http://www.cyberforum.ru/cpp-beginners/thread686574.html
Добрый день. Надо разработать реализации для таких очередей с использованием массивов, указателей и курсоров. Очередь с двусторонним доступом - это список, в котором добавлять и удалять элементы можно с обоих концов. Если возможно будет откомментируйте код пожалуйста.
C++ Считывание obj файла Предыстория:) 2 месяца прошло с тех пор как я застрял на том что не могу згрузить 3D модель в OpenGl проект. Я делал конвертеры ("загрузчики") сам 3 совершенно разные версии. Не помогло. Прошу помощь у вас разработать программу или хотябы алгоритм считывание OBJ файла и преобразовние его в код для OpenGl Задачи: Есть OBJ файл. Строиться по типу: " v X Y Z " много таких строк (вершин)... http://www.cyberforum.ru/cpp-beginners/thread686559.html
Too few arguments to function C++
Доброго времени суток! Возникла проблема при компиляции кода, собственно на скриншотах ниже, никак не могу ничего придумать, подскажите пожалуйста.
н-арные деревья C++
Где можно почитать (посмотреть видео) о н-арных деревьях?
C++ Дан массив A размера N. Вывести http://www.cyberforum.ru/cpp-beginners/thread686526.html
Дан массив A размера N. Вывести его элементы в следующем порядке: A0, A1, AN-1, AN–2, A2, A3, AN–3, AN–4, … . интересует собственно как задать такую последовательность?
C++ Ошибка в функции из за переменной Код выдает ошибку. Все переменые должны быть обьязательно в главной функции, в глобальной нельзя. И из за переменной С выдает ошибку компилятор. А казалось все сделал правильно. #include<iostream> #include<conio.h> #include<stdlib.h> #include<locale.h> using namespace std; const int n=5; void input(int); void sum(int, int, int, int, int, int); void output(int); подробнее

Показать сообщение отдельно
Костя Хута
0 / 0 / 0
Регистрация: 27.10.2012
Сообщений: 22
01.11.2012, 23:58     Сортировка элементов масива обьектов через перегруженный оператор
Всем Добрый вечер. У меня есть класс Planet в main мне нужно создать массив обьектов этого класса. И потом его нужно посортировать по значениям одного из поля обьекта класса. При сортировке не вызываеться мой перегруженный оператор..

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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
class Planet{
public: string name;
protected: double diameter;
private: int sputniks, number, distance;
public:
    Planet();
    Planet(string n,double dia,int sput,int numb,int dist);
 
 int sputnik(int num, double dist )
{
    this->number=num;
    this->distance=dist;
    return number;
}
 void setNumber(int numb)
 {
    number=numb;
 }
 
  void setDiametr(double diam)
 {
    diameter=diam;
 }
 
double getDiametr()
{
    return diameter;
}
     
double getNumber()
{
    return number;
}
 
double sputnik(double d )
{
    return d;
}
 
void sputnik(int dist)
{
    distance=dist;
}
 
};
 
 
Planet::Planet(string n,double dia,int sput,int numb,int dist)
         {
            name=n;
            diameter=dia;
            sputniks=sput;
            number=numb;
            distance=dist;
         }
 
ostream &operator<<(ostream &stream, Planet obj)
{
    stream<<obj.name<<", ";
    stream<<obj.getDiametr()<<", ";
    stream<<obj.getNumber();
    return stream;
}
 
iostream &operator>>(iostream &stream, Planet obj)
{
    stream>>obj.name;
    
    return stream;
}
 
bool operator <(Planet ob1,Planet ob2)
{
    cout<<"  _______  < ________";
    if(ob1.getNumber()<ob2.getNumber())
    {
        return true;
    }else
        return false;
}
 
bool operator >(Planet ob1,Planet ob2)
{
    cout<<"  _______  > ________";
    if(ob1.getNumber() > ob2.getNumber())
    {
        return true;
    }else
        return false;
}
 
 
bool operator ==(Planet ob1,Planet ob2)
{
    if(ob1.getNumber() == ob2.getNumber() && (ob1.getDiametr() == ob2.getDiametr()) && (ob1.name == ob2.name))
    {
        return true;
    }else
        return false;
}
 
///////////////////////////////////////////////
int _tmain(int argc, _TCHAR* argv[])
{   
    Planet* planets[4]={
    planets[0]=new Planet("Aaaa",34,55,3,3),//3 сп
    planets[1]=new Planet("Baaa",33,34,6,3),//6сп
    planets[2]=new Planet("Ccc",33,34,2,3),//2 сп
    planets[3]=new Planet("Rrr",33,34,5,3),//5 сп
    };
 
    
    for (int i=4-1;i>0;i--)
  {
    for (int j=0;j<i;j++)
      {
 
        if(planets[j] > planets[j+1]) //Почемк то не вызываеться перегруженный оператор
          {
              int tmp=planets[j]->getNumber();
              planets[j]=planets[j+1];
              planets[j+1]->setNumber(tmp);
          }
     }
  }
    
    cout << "Your array after sorting: ";
    for ( int i = 0; i < 4; i ++ ){
        cout << planets[i] << " ";
    } 
 
    
    getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 07:25. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru