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

Классы, статические элементы - C++

Восстановить пароль Регистрация
 
ZiP-777
0 / 0 / 0
Регистрация: 10.06.2011
Сообщений: 24
22.05.2012, 06:34     Классы, статические элементы #1
Помогите разобрать, что делает данный кусок программы. Желательно построчно - на уровне работы компилятора. Спасибо.

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
class A{
        int val;
static  A *all[10];
public:
    A(int n=0) { val = n;
        for (int i=0; i<10; i++)
            if (all[i]==NULL) { all[i]=this; break; }
    }
    A(A &r) { val = r.val;
        for (int i=0; i<10; i++)
            if (all[i]==NULL) { all[i]=this; break; }
    }
    ~A() {
        for (int i=0; i<10; i++)
            if (all[i]==this) { all[i]=NULL; break; }
    }
static  int max(){
        int v=0;
        for (int i=0; i<10; i++)
            if (all[i]!=NULL && all[i]->val > v) 
                v=all[i]->val;
        return v; }
     };
 
A *A::all[10]={NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL};
 
int F(){
   A c(14),d(16);
   return A::max();
   }
 
A gl(10);
 
void main(){
   int e,f,g,h;
   e=A::max();
   A a(10),b(12);
    f=F();
   g=A::max();
   }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ZiP-777
0 / 0 / 0
Регистрация: 10.06.2011
Сообщений: 24
27.05.2012, 19:03  [ТС]     Классы, статические элементы #2
Ап...

Добавлено через 2 часа 1 минуту
Ребят, очень нужна ваша помошь.
Lewis_Husk
 Аватар для Lewis_Husk
0 / 0 / 0
Регистрация: 28.03.2012
Сообщений: 13
27.05.2012, 19:57     Классы, статические элементы #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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
using namespace std;
//Класс А
class A{
        int val;    
static  A *all[10];                                  //Массив указателей на объект класса А, 
public:                                              //поле существует для всех объектов класса в единственном экземпляре
    A(int n=0) {                                     //Конструктор
        val = n;
        for (int i=0; i<10; i++)                     //Цикл со счётчиком
            if (all[i]==NULL) { all[i]=this; break; }//Если элемент массива не равен нулевому указателю, то
    }                                                //присвоить ему константный указатель на вызвавший функцию объект 
    A(A &r) {                                        //Не понял
        val = r.val;
        for (int i=0; i<10; i++)
            if (all[i]==NULL) { all[i]=this; break; }
    }                                                
    ~A() {                                           //Деструктор
        for (int i=0; i<10; i++)
            if (all[i]==this) { all[i]=NULL; break; }
    }
static  int max(){
        int v=0;
        for (int i=0; i<10; i++)
            if (all[i]!=NULL && all[i]->val > v) 
                v=all[i]->val;
        return v; }
     };
 
A *A::all[10]={NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL}; //Инициализировать элементы массива нулевыми указателями
 
int F(){
   A c(14),d(16);
   return A::max();
   }
 
A gl(10);
 
int main(){
   int e,f,g,;
   e=A::max();
   A a(10),b(12);
    f=F();
   g=A::max();
   }
yleart
 Аватар для yleart
60 / 45 / 1
Регистрация: 07.10.2011
Сообщений: 139
27.05.2012, 20:15     Классы, статические элементы #4
13 строка: похоже на конструктор копирования
22 строка: член-функция поиска какого - то максимума...(скорее всего максимального член-данного val)
32 строка: функция которая возвращает максимум иницализированных объектов
3 строчку не совсем понял..
Avazart
 Аватар для Avazart
6901 / 5141 / 252
Регистрация: 10.12.2010
Сообщений: 22,604
Записей в блоге: 17
27.05.2012, 20:43     Классы, статические элементы #5
Ну тут класс - не столько класс как оформление кода.
Есть массив значений(статическая переменная) и ф-ции работающие с ним (методы) и все в одном простанстве имен
Yandex
Объявления
27.05.2012, 20:43     Классы, статические элементы
Ответ Создать тему
Опции темы

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