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

переключение "флага" - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вставка в начало двусвязного списка http://www.cyberforum.ru/cpp-beginners/thread844265.html
Не могли бы помочь? Как сделать вставку в начало списка найденного элемента? Через public метод класса, с private указателями next и prev. И если знаете, как найти символ с максимальным кодом в...
C++ Функция класса, нужно изменить вот есть фрагмент кода: class railway { public: railway(char *,char *,char *); railway(void){cout << "\nrailway cashreg,";} virtual void abstr(void)=0; void fun(void){ cout <<... http://www.cyberforum.ru/cpp-beginners/thread844254.html
C++ Правильно ли я сделаю?
Всем привет вот я сейчас читаю книгу Программирование. Принципы и практика использования C++(всего 27 глав сейчас на 20) и думаю а что если бросить читать и начать читать Язык программирования...
C++ По двум заданным одномерным массивам формируется третий, содержащий в начале элементы первого, а в конце – элементы второго массива.
Нужно решить задачу на С++ 1) По двум заданным одномерным массивам формируется третий, содержащий в начале элементы первого, а в конце – элементы второго массива.
C++ Убрать всплывающее контекстное меню http://www.cyberforum.ru/cpp-beginners/thread844240.html
Добавил картинку на форму , по наведению на неё курсора мыши открывается контекстное меню после чего контекстное меню становится активным на форме, и для того что бы убрать меню приходится щелкать...
C++ Дана матрица размера. Преобразовать матрицу, поменяв местами минимальный и максимальный элемент в каждой строке1| столбце2 Нужно решить две задачи на С++ Дана матрица размера 5 x 10. Преобразовать матрицу, поменяв местами минимальный и максимальный элемент в каждой строке1| столбце2. подробнее

Показать сообщение отдельно
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 324
Завершенные тесты: 1

переключение "флага" - C++

21.04.2013, 23:25. Просмотров 335. Ответов 5
Метки (Все метки)

подскажите пожалуйста, вот есть код, базой клас и производный и есть два метода заполнения масива в базовом класе последовательными числами 0,1,2... и в производном класе метод заполнения случайными числами и в производном есть переменая флаг изначально она 0 когда происходит заполнения случайными числами переменая меняется в состояние 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
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
#include <iostream> 
#include <algorithm>  
#include <functional>
#include <vector>                                                                
using namespace std;                                                           
class CCube                                                                               
{
public :                                                                                    
    CCube ():x(4),y(4),z(5)                                       
    {}                            
    ~CCube()                                                                  
    {}
    void FillCube ();
    int x,y,z;
    int Mas[4][4][5];
};
class CSecond: public CCube
{
    int mas[80];
public:
    CSecond():flag(0)
    {}
    ~CSecond ()
    {}
    bool flag;
    void RandomShuffle(int x, int n);
};
void CCube::FillCube ()
{ 
    for (int k = 0; k<z;k++)
    {
        for (int i = 0; i<x;i++)
        {
            for( int j =0;j<y;j++)
            {
                Mas[i][j][k]=i*z*y+j*z+k;
            }
        }
    }
    flag=1;
}
void CSecond::RandomShuffle( int a, int n)
{
    const int VECTOR_SIZE=80;
    typedef vector<int> IntVector;
    typedef IntVector::iterator IntVectorIt;
    int g=0;
    IntVector Numbers(VECTOR_SIZE); 
    IntVectorIt start,end, it;
    for (int i=0;i<80;i++)
    {
        Numbers[i] = a;
        a=a+n;
    }
    start=Numbers.begin();
    end=Numbers.end();
    random_shuffle(start, end);
    for(it=start; it!=end; it++)
    {
        mas[g]=*it;
        g++;
    }
    g=0;
    for ( i = 0; i<x;i++)                                   
    {
        for (int j = 0; j<y;j++)                    
        {
            for( int k =0;k<z;k++)
            {
                Mas[i][j][k]=mas[g];
                g++;
            }
            
        }
    }
    flag = 1;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru