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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 312
Завершенные тесты: 1
#1

Проблемы с наследованием - C++

08.04.2013, 21:16. Просмотров 274. Ответов 4
Метки нет (Все метки)

подскажите пожалуйста пишу код, возникла проблема, получается в данном моем коде есть трехмерный масив в базовом класе и есть одномерный массив в класе производном который заполняется произвольным образом и я хочу зделать так что бы трехмерный массив из базового класа заполнялся значениями из одномерного масива производного класа, что-то писал, вот мой код, как его можно подисправить что бы выполняло так как мне надо
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
#include <iostream> 
#include <algorithm>  
#include <functional>
#include <vector>                                                                
using namespace std;                                                           
class CCube                                                                               
{
    int x,y,z;
    int Mas[4][4][5];     
public :                                                                                    
    CCube ():x(4),y(4),z(5)                                           
    {}                            
    ~CCube()                                                                  
    {}
    void FillCube ();                           
    void ShowFullCube();                
};
class CSecond: public CCube
{
    int mas[80];
public:
    void RandomShuffle(int x, int n);
};
void CSecond::RandomShuffle( int x, 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] = x;
        x=x+n;
    }
    start=Numbers.begin();
    end=Numbers.end();
    random_shuffle(start, end);
    for(it=start; it!=end; it++)
    {
        mas[g]=*it;
        g++;
    }
}
void CCube::ShowFullCube()             
{
    int i,j,k;                                                             
    cout<<"\r\n\r\n\r\n";                                   
    for(k=z-1;k>=0;k--)                                        
    {
        for(j=0;j<y;j++)                                   
        {
            for(int l=5-j;l>=1;l--)           
                cout<<"   ";            
            for(i=0;i<x;i++)                   
                                           
                cout<<"     "<<Mas[i][j][k];
            cout<<"\r\n";                    
        }
        cout<<"\r\n\r\n\r\n";                   
    }
}
void CCube::FillCube ()                     
{
    for (int i = 0; i<x;i++)                                   
    {
        for (int j = 0; j<y;j++)                    
        {
            for( int k =0;k<z;k++)
            {
                Mas[i][j][k]=(i*z*y+j*z+k);
            }
            
        }
    }
}
void main ()                                                                 
{
           CCube cube;
    CSecond C;
    C.RandomShuffle(1,1);
    C.FillCube ();
           C.ShowFullCube();                     
           scanf ("%i");                                                    
}
метод класа FillCube получается заполняет масив, но подрят значениями
а метод класа ShowFullCube вывод массив, но я пока чет неполучается у меня связать производный клас и базовый, вертел крутил нечего не намудрил, подскажите пожалуйста
а РандомШафл, рандомными значениями заполняет одномерный массив
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.04.2013, 21:16     Проблемы с наследованием
Посмотрите здесь:

Проблемы с наследованием - C++
Выпадает такая ошибка Error 3 error C2259: 'Operator' : cannot instantiate abstract class d:\учёба\ооп\терминал...

Проблемы с наследованием классов - C++
1-е задание: Создать класс базовый класс «вещественное число». Элементы класса (поля имеют статус доступа protected): поле,...

Непонятки с наследованием - C++
Будьте добры, проясните пожалуйста такой момент: Есть код: #include &lt;iostream&gt; using namespace std; class Counter { ...

Проблема с наследованием - C++
Здравствуйте, уважаемые Все! Столкнулся со следующей проблемой. Необходимо реализовать паттерн программирования &quot;Фабричный метод&quot;....

подскажите пожалуйста с наследованием - C++
Здравствуйте! такой вопрос... создаю базовый класс к примеру : class Books от него наследую class History : public...

Не разберусь с наследованием класса - C++
Помогите разобраться с классами. Есть класс - шаблон и 2 класса наследуемые от него template &lt;class Type&gt; class VRTSmartStr : public...

Массив классов с наследованием - C++
Hi,all and thanks in advance. Shape base class, line and Point derived classes. What should I declare in .h files and implement in .cpp...

Не могу разобраться с наследованием - C++
есть клас class Liquid{ private: string name; float density; public: Liquid(){ ...

Класс со множественным наследованием - C++
Доброе день! Необходимо оперативно написать программу, надеюсь на вашу помощь! Текст программы: Написать класс &quot;Автомобиль&quot; с...

Задача с шаблонами и наследованием - C++
Ребята, есть такая проблема.. Предположим, что у нас есть класс Image (не шаблонный). И есть класс ImageExt&lt;T1,T2&gt; (шаблонный),...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gazlan
3130 / 1905 / 285
Регистрация: 27.08.2010
Сообщений: 5,132
Записей в блоге: 1
08.04.2013, 21:46     Проблемы с наследованием #2
Сделайте, сначала вообще без всяких классов, просто два массива.

А когда научитесь с ними обращаться, разнесете по иерархии.
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 312
Завершенные тесты: 1
08.04.2013, 21:51  [ТС]     Проблемы с наследованием #3
а что с ними обращатся?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
    int g=0;
    for (int 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++;
            }
            
        }
    }
разве не так? я немогу разобратся с самой иерархией, я понимаю что базовый передает метод класа FillCube в клас производный, но как туда вписать значения масива заполненого случайными числами, где имено писать ету строку или как вопще, впервые просто работаю с наследованием
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
08.04.2013, 22:28     Проблемы с наследованием #4
В базовом классе сделать метод для доступа к Mas (т.к. он в приватном разделе). В производном классе сделать метод заполнения массива Mas, используя метод базового класса для доступа к массиву. Можно и по другому, но нужны методы для доступа к массивам в классах.
итернал
4 / 4 / 0
Регистрация: 17.09.2012
Сообщений: 312
Завершенные тесты: 1
08.04.2013, 23:32  [ТС]     Проблемы с наследованием #5
что-то я совсем нечего не понял...

Добавлено через 42 минуты
фух, наконец я разобрался, спасибо кто чем-то помогал, со слов канешно было сложновато но полазив по форуму посмотрев как другие работают с наследием смог понять что к чему
Yandex
Объявления
08.04.2013, 23:32     Проблемы с наследованием
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru